[Rcpp-commits] r3231 - pkg/RcppEigen/inst/doc

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Wed Oct 26 22:17:23 CEST 2011


Author: dmbates
Date: 2011-10-26 22:17:22 +0200 (Wed, 26 Oct 2011)
New Revision: 3231

Modified:
   pkg/RcppEigen/inst/doc/Rcpp.bib
   pkg/RcppEigen/inst/doc/RcppEigen-Intro.Rnw
   pkg/RcppEigen/inst/doc/RcppEigen-Intro.pdf
Log:
Add references to the vignette.


Modified: pkg/RcppEigen/inst/doc/Rcpp.bib
===================================================================
--- pkg/RcppEigen/inst/doc/Rcpp.bib	2011-10-26 20:16:52 UTC (rev 3230)
+++ pkg/RcppEigen/inst/doc/Rcpp.bib	2011-10-26 20:17:22 UTC (rev 3231)
@@ -190,6 +190,14 @@
   url =		 CRAN # "package=inline"
 }
 
+ at Manual{CRAN:Matrix,
+  title =	 {Matrix: Sparse and Dense Matrix Classes and Methods},
+  author =	 {Douglas Bates and Martin Maechler},
+  year =	 2011,
+  note =	 {R package version 1.0-2},
+  url =		 CRAN # "package=Matrix"
+}
+
 @Manual{CRAN:minqa,
   title =	 {minqa: Derivative-free optimization algorithms by
                   quadratic approximation},
@@ -200,6 +208,14 @@
   url =		 CRAN # "package=minqa"
 }
 
+ at Manual{CRAN:rbenchmark,
+  title =	 {rbenchmark: Benchmarking routine for R},
+  author =	 {Wacek Kusnierczyk},
+  year =	 2010,
+  note =	 {R package version 0.3},
+  url =		 CRAN # "package=rbenchmark"
+}
+
 @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},

Modified: pkg/RcppEigen/inst/doc/RcppEigen-Intro.Rnw
===================================================================
--- pkg/RcppEigen/inst/doc/RcppEigen-Intro.Rnw	2011-10-26 20:16:52 UTC (rev 3230)
+++ pkg/RcppEigen/inst/doc/RcppEigen-Intro.Rnw	2011-10-26 20:17:22 UTC (rev 3231)
@@ -125,16 +125,17 @@
 \abstract{
   \noindent
   The \pkg{RcppEigen} package provides access to the \pkg{Eigen}
-  \proglang{C++} template library from \proglang{R}. \pkg{Rcpp}
-  classes and instantiations 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.
+  \proglang{C++} template library for numerical linear algebra from
+  \proglang{R}. \pkg{Rcpp} \citep{JSS: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.
 }
 
 \section{Introduction}
 \label{sec:intro}
 
-As stated in the \pkg{Rcpp} vignette, ``Extending \pkg{Rcpp}''
+As stated in the \pkg{Rcpp} \citep{CRAN:Rcpp} vignette, ``Extending \pkg{Rcpp}''
 \begin{quote}
   \pkg{Rcpp} facilitates data interchange between \proglang{R} and
   \proglang{C++} through the templated functions \texttt{Rcpp::as} (for
@@ -172,9 +173,9 @@
 vectors, as shown in Table~\ref{tab:REigen}. We will use these
 typedef's throughout this document.
 \begin{table}[tb]
-  \centering 
   \caption{Correspondence between R matrix and vector types and classes in the \code{Eigen} namespace.}
   \label{tab:REigen}
+  \centering 
   \begin{tabular}{l l}
     \hline
     \multicolumn{1}{c}{\proglang{R} object type} & \multicolumn{1}{c}{\pkg{Eigen} class typedef}\\
@@ -271,7 +272,7 @@
 \\where \code{AA} is the name of the R object (called an \code{SEXP} in
 \proglang{C} and \proglang{C++}) passed to the \proglang{C++} function.
 
-The \code{cxxfunction} from the \pkg{inline} package for \proglang{R}
+The \Sexpr{link("cxxfunction")} from the \pkg{inline} \citep{CRAN:inline} package for \proglang{R}
 and its \pkg{RcppEigen} plugin provide a convenient way of developing
 and debugging the \proglang{C++} code.  For actual production code we
 generally incorporate the \proglang{C++} source code files in a
@@ -298,7 +299,7 @@
 (A <- matrix(1:6, ncol=2))
 str(A)
 @ 
-and use the \code{transpose} method for the \pkg{Eigen::MatrixXi}
+and use the \code{transpose} method for the \code{Eigen::MatrixXi}
 class to return its transpose. 
 
 <<echo=FALSE>>=
@@ -652,8 +653,8 @@
 const VectorXd           betahat(QR.solve(y));
 const VectorXd            fitted(X * betahat);
 const int                     df(n - p);
-const VectorXd                se(QR.matrixQR().topRows(m_p).triangularView<Upper>().
-                                 solve(MatrixXd::Identity(m_p,m_p)).rowwise().norm());'
+const VectorXd                se(QR.matrixQR().topRows(p).triangularView<Upper>().
+                                 solve(MatrixXd::Identity(p,p)).rowwise().norm());'
 writeLines( code, "code.cpp" )
 @ 
 <<echo=FALSE,results=tex>>=
@@ -757,7 +758,7 @@
 ex_highlight( "code.cpp" )
 @
 
-\subsection{Least squares with the SVD}
+\subsection{Least squares using the SVD}
 \label{sec:SVDls}
 
 With these definitions the code for least squares using the singular
@@ -789,7 +790,7 @@
 The interpretation of the standard errors from this code is also
 problematic when $\bm X$ is rank-deficient.
 
-\subsection{Least squares with the eigendecomposition}
+\subsection{Least squares using the eigendecomposition}
 \label{sec:eigendecomp}
 
 The eigendecomposition of $\bm X^\prime\bm X$ is defined as
@@ -812,8 +813,8 @@
 const SelfAdjointEigenSolver<MatrixXd>
     VLV(MatrixXd(p, p).setZero().selfadjointView<Lower>.rankUpdate(X.adjoint()));
 const ArrayXd               D(eig.eigenvalues());
-const int                   r((D > D[m_p - 1] * threshold()).count());
-const MatrixXd            VDp(VLV.eigenvectors() * Dplus(D.sqrt(), m_r, true));
+const int                   r((D > D[p - 1] * threshold()).count());
+const MatrixXd            VDp(VLV.eigenvectors() * Dplus(D.sqrt(), r, true));
 const VectorXd        betahat(VDp * VDp.adjoint() * X.adjoint() * y);
 const VectorXd             se(s * VDp.rowwise().norm());'
 writeLines( code, "code.cpp" )
@@ -822,7 +823,7 @@
 ex_highlight( "code.cpp" )
 @
 
-\subsection{Least squares with the column-pivoted QR decomposition}
+\subsection{Least squares using the column-pivoted QR decomposition}
 \label{sec:colPivQR}
 
 The column-pivoted QR decomposition provides results similar to those
@@ -870,9 +871,9 @@
 VectorXd                       betahat, fitted, se;
 if (r == X.cols()) {	// full rank case
     betahat  = PQR.solve(y);
-    fitted   = X * m_coef;
-    se       = Pmat * PQR.matrixQR().topRows(m_p).triangularView<Upper>().
-	       solve(MatrixXd::Identity(m_p, m_p)).rowwise().norm();
+    fitted   = X * betahat;
+    se       = Pmat * PQR.matrixQR().topRows(p).triangularView<Upper>().
+	       solve(MatrixXd::Identity(p, p)).rowwise().norm();
 } else {
     MatrixXd                      Rinv(PQR.matrixQR().topLeftCorner(r, r).
 				       triangularView<Upper>().
@@ -881,7 +882,7 @@
     betahat.head(r)                    = Rinv * effects.head(r);
     betahat                            = Pmat * betahat;
 			// create fitted values from effects
-			// (cannot use X * m_coef when X is rank-deficient)
+			// (cannot use X * betahat when X is rank-deficient)
     effects.tail(X.rows() - r).setZero();
     fitted                             = PQR.householderQ() * effects;
     se.head(r)                         = Rinv.rowwise().norm();
@@ -910,7 +911,7 @@
 all.equal(unname(residuals(fm1)), residuals(fmSVD))
 @ 
 The coefficients from the symmetric eigendecomposition method are the same as those from the SVD
-<<rankdeficientSVD>>=
+<<rankdeficientVLV>>=
 print(summary(fmVLV <- fastLm(y ~ f1 * f2, dd, method=5L)), signif.stars=FALSE)
 all.equal(coef(fmSVD), coef(fmVLV))
 all.equal(unname(fitted(fm1)), fitted(fmSVD))
@@ -925,10 +926,11 @@
 based on \pkg{Eigen}?''.  We have provided benchmarking code for these
 methods, plus the default method using \proglang{R}'s \code{lm}
 function and the \code{fastLm} implementations in the
-\pkg{RcppArmadillo} and \pkg{RcppGSL} packages, if they are installed.
-The benchmark code, which uses the \pkg{rbenchmark} package, is in a
-file named \code{lmBenchmark.R} in the \code{examples} subdirectory of
-the installed \pkg{RcppEigen} package.
+\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 
@@ -943,13 +945,13 @@
 Results obtained on a desktop computer, circa 2010, are shown in
 Table~\ref{tab:lmRes}
 \begin{table}[tb]
-  \centering
   \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 single-threaded version of Atlas
     (Automatically Tuned Linear Algebra System).}
   \label{tab:lmRes}
+  \centering
   \begin{tabular}{r r r r r}
     \hline
     \multicolumn{1}{c}{Method} & \multicolumn{1}{c}{Relative} &
@@ -979,8 +981,8 @@
 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 R's \code{lm.fit} on
-this test and provides nearly the same information as \code{lm.fit}.
+The pivoted QR method is 1.6 times faster than R's \Sexpr{link("lm.fit")} on
+this test and provides nearly the same information as \Sexpr{link("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
@@ -1039,8 +1041,8 @@
 \label{sec:sparse}
 
 \pkg{Eigen} provides sparse matrix classes.  An \proglang{R} object of
-class \code{dgCMatrix} (from the \pkg{Matrix} package) can be mapped
-as shown below.
+class \Sexpr{linkS4class("dgCMatrix")} (from the \pkg{Matrix}
+\citep{CRAN:Matrix} package) can be mapped as shown below.
 
 <<echo=FALSE>>=
 code <- 'using Eigen::Map;

Modified: pkg/RcppEigen/inst/doc/RcppEigen-Intro.pdf
===================================================================
--- pkg/RcppEigen/inst/doc/RcppEigen-Intro.pdf	2011-10-26 20:16:52 UTC (rev 3230)
+++ pkg/RcppEigen/inst/doc/RcppEigen-Intro.pdf	2011-10-26 20:17:22 UTC (rev 3231)
@@ -94,19 +94,19 @@
 << /S /GoTo /D (subsection.4.4) >>
 endobj
 64 0 obj
-(Least squares with the SVD)
+(Least squares using the SVD)
 endobj
 65 0 obj
 << /S /GoTo /D (subsection.4.5) >>
 endobj
 68 0 obj
-(Least squares with the eigendecomposition)
+(Least squares using the eigendecomposition)
 endobj
 69 0 obj
 << /S /GoTo /D (subsection.4.6) >>
 endobj
 72 0 obj
-(Least squares with the column-pivoted QR decomposition)
+(Least squares using the column-pivoted QR decomposition)
 endobj
 73 0 obj
 << /S /GoTo /D (subsection.4.7) >>
@@ -129,821 +129,1055 @@
 85 0 obj
 << /S /GoTo /D [86 0 R  /Fit ] >>
 endobj
-94 0 obj <<
-/Length 3349      
+98 0 obj <<
+/Length 3484      
 /Filter /FlateDecode
 >>
 stream
-xÚµ[YãÆ~ß_!ø%lµÙÍn²élgãØ@d=HØ~Ðj83ÊŽ¤5¥ÙñþûÔÑ'Ic;0è¡È>ëøê«jn¹¸_”‹o^•3¿ºyõù_›j!¡¤Ñ‹›»…´V4]Ôm%šÖ.nn?_î—«ª,‹o—²Ø/USœúÃr¥LqûO6p¶zGÍN‡åO7ßÁÈ6¹ªE%a^ò
-v|ÿ{ÿþ·…ë¾Ûs7%RŠÖ…ÝV5,¤R‹•²Â¶Š{ÿÚpî{¸áZÃu„ÙU]|…÷'¸ºc\F2ž5BêÆ«DåÇ»z5u)lcü&>,•-ºçÆ>^ ˜RÀ½„ÿVülíˆÍîøö8/®õðäYÜöüJÁm
-×gÜY•8 Ä5Ôøù_YXÑÖ5	Z—´ÍbUi¡µ× ô~{DÁôkžsf 2h%[4½ÔÂIêæ%K¸•ú
-õfSh#[û^ï&7KÕï–¦¡_÷4#l§¤`zðöÃö–³ÚáõÛ°ÚÃC°ÄUUµÅéa©¦W­4(ÔúÐbï;Ò#5nuÒXQêÆ·ýZ}úéÄžÀ°T]ùfd‰»÷‰žü~øÑö-n
-_ôyÕw=šÈnbm)ÊÊD!'7p§|1±c#겫izMÆBÑ>²›ÁÕ%RßÃuËrÞî]ƒ“±ÂÁÁ‹(z%Kð¥6Šfë%â „UgÚà%uI¯³Ë$YZ{NtÕ\ÐÉ-Ï|÷äVÂÀ—ÆH½ÍÂÈ&Xð:¶Êæ—JÔªJ[±ÔÆさ:lè™ ×8©#%Ê ¢Ìn2¥+ at 0¥®Õ:ܦéŽ̦›)Ô?ÊJ'xŒ"ì>ÁWº¸;8T«ËàáG4²–û¨nÀ@Sÿí6N!Gî3ï ™F˜UMyERjSí&F˜WººÊ½›f¬Jrè·‚9ÿkë h¥k@ºPó•
-#—+	Xä"l…8M«„Fd7‰ƒŒT"P«šõä*zb0oÍ`¼çÛӘ׍°º¾Ö^lš’•Ü;™t8í©ã ¦dãQöZÒÞÙ”³„ñB X·Õ•†[OJþd&Àe£¯dS]ÖàÀè¯óŽ*ìöníPbK@~JÁ„`¬¦Ý­Y
-ðÛàNÁ2¨EOFòàì“Hý4(A`ÏØ®ë¦B’Ô ©Fž‹­õðèðÈ«¢›.3$}`Œ`§¿§´…!*åº$WI"èš‚.Ø„“&³72^_¸kqy¢SÈ€ãÇÒ É
-p´áE ü‘úŒçi¢´!Ø‘›Ì×TµPª>¯¼kK_Ö\	\Ü·‚ÍJ^ß¹`ìÈ8û„˜/)1Z·ÉÌ/ó¼-•œ¬©_&È‹ôŠd(™eMÙ°ÁdX2Ï–A±eý+زmÚëز‘iðÆao,•¹oºÛuð¬xþc)°=Ï6l ¤Œ÷„PGøb,ñµÁÆ!¬®'ÜR_£[@Ë|ÿ¸]rŒŽ|Ö»l@(ª.å°e+iÇv=†¬€w^¥%d²öׂ¤wµ¹ŽJBl°ö÷õÞÔmÏñrÕ‚3ØúåTŽálÒYâ~DdÆ&ÖH ó–Ïĸ5Y¾„•†ŠØz¦ès®lµ¹r:À˜mŽ·«µŽRÝÑS´b®3Ðûj"¦n9\÷û'93+m·NBl”L×­/aS3~tC&Ü'N<FëTÁo¸¹_ßq‹#;ã;ë“[aâ%Ø:xÉbeZQ‚&r¿õ^xô¹G“‘îº.Ž	û¤Íλ~¿Ýxàƒ¶ƒ®¼}Ÿp˜ŽXqi—k É35y$@	³»w´¸9Deµ8=ˆÃÏ}šîyàœMô¦rFÈaÜ‘÷i·΍rDÝD›:z#¦¬!ódþ%@CÀ;etO¾<ž~;_Ê„nÆÖ‡y®6$?_BìbÎBÒìRÍñæ›OCÆ +;>Р0ñ3÷þö¢
-¨‚kd×YoâŽO®Mâ¢=¡±ÞxJ0LüJ—ò¹’œr)ßëí=›8X)6i†ÜÍÄ Ÿò9šñÚ;>Ž¢ŒfŽÅ	ü'ªEùß¾Á4(gyVè6€ðƒÓþ)‰Ÿ»«K@Æû¾pmQ¿²x;×7ôѵ;¸XsŸeg£Z‰2–T˜©*̝Øðv=r@¸W¤ï
-6Û^d8ɘ-àÓ‰’ˆ'?(úhG;ØɇM¼w8¸Qb‡~wçl>4Î`³iBKÙ‚mY™û1Z(+{PL3ŠËu=ìçFøµ9ÈÃOO 	Ô˜PÛŽ`	 ÂÚª¸	ŽÙñ(‘ÍMÕ»Ï
-ᇗñc7±žŠSÏÉ\ÐñÑ k¨4ûõ6¤Ô4ª—?Þ¿
-;4£I(vràœ€FH}Mòõ
-Ap•íòõÇG~y$í=%°þD[¹å×=€sÄâZ#hÐ(Ù¶H–ŒÕqô.VQ“CÐ^׏)ª˜$mŒëj NiL„óŽeàaG¿Oàöµ_{çl}ˆslÀÕ†˜uƒÃuÏU²#AÍ+ôޱݏ÷d»2íù»‰üm°dI>ˆ‘úߥ†¥B¤ÃÛ´"Ú†b×óƒ“ú£ãjJMÛO–R™ÂÍç‡ZÇÑ3öÅ,í6}“ȧØÆž‡e²¶ž_Úù’Ó“›éÞvzæÖ]"3¥œœ0y“B–zÌ*¼6)RîPOþÀ×L=›qñ<ÙŒ§úûx^rîû>ØñBVÂJ•Oþe,!ûš§i‹è¿ÀÓ¦)Áù…+²N˜}pʳ
-yxË¢H]Û´ScuqítWː޳ÞhèÝ.ËÄí%à}or;·º×àç7»Nž>}`¿ð’þìì¼4q–îÒƒþÒWW\°³PZsïoò휎ñílZ7©»Ùh”Úo³s dÎHêÝäIHwV¬‹¿9šépéÖgSg4’ÃÖ^HZ}îÆíŠêÇ£÷Ò; -þàR0è¢cºµÝ2A7;æ5.U–ÂVvZ/kïã&ŒÚsVèHE èz¶$×X!«æB‰Ô©í|¢I^¶	çÃ&O	ôlâ§Ý9=4I²†=?	G'(åÔËq—óÆäÈÀ1»ªMñï%°—ŽG%ÚBÄf#lp/N)ÃâätgK­&jó¼Û'¯͍¶ÈÁÕd;‘…3ðn\ç]¤&lÇE“¼ÒŠ§W¬‘úLy¨¶ô#×<ôš‚Ü÷féØáUš‚¾CMqÒßwƒ‘í¨þ•ÕÞ´M+3oΧ‰ÍÖÐ#Èdﱘl8Öz™”`ªøì¦ßºs$.{të´f`GΘ®û#ÿÞa²6× ©/Øâ¹÷¼ÿä9™‚Œ±ž˜™Èzî¬Ò²¶™D¬Dþ=ÁÐ޵Ìò?±¾™	¬)†&Å;*VÌ.óWIxv‰Þ3ÓGyIÙá)–:£/fg>'_;¦åÜÆ1–÷IBÜý\èÁ,b©3˜ùjÅOFÞñúÑN_ß¼úù•$3–ˆ–mÙ€%)Ñ@f¸Ù½úá§rqï¾C#‡èòL-wg	-ºÖãâûWÿLÇ ×,kp½VhÐí™1JôO	97Až\
-*¿ßЗgÙWKV™hlÈ’JŸŽÎ
-ö÷ƒãÜáxÊF#šª:ë|gCpf›¼Üî¢Í^èÿÇmü›LÍFiQ—òWèhl*0„ª_b)¬º2Ñ4dj5HÝ}¸âË~àVëh¾OI%7+é%EÅuôHD¶§©°•¥[8ÒÏ>‹!qÇ]J˜ÔÇùz78ÀØFgM«©8Ã	Ûƒ¯ëM|U`…´5–ãðˆPcT5tNÎapi«bý6&UUò.«}è¹.B0_2/"KÝÄöîAÿE àsçÄ
-/ßàUìÖÁá'ál
-jC=·8áXžIÔ,wêxË7›ˆgþÝ6N<ˆÒ$’¨´fÀhÇ10•{–mwL¹›Ë?ó	i¡¯Òð©<ëJ6¢¤oœ‹ÆÜ5YD¶
-`H6•PFfì3]0ÖÎàGœFCNÏ"öÒÍx þq[‹ÚÎ eò\‹•ÑMiHƒÉœݍ#EW
-‰½T\骀-‚­Ã˜øulÛxåa¦¿ë¼=nFJH9¶Y–¢)ƒP¯ éZV¾ûŠ¿ÚåA¶áÃeg{÷]ÿXÏöÚõl¸´Jhà5Ï\~ãB6/ÎŒ¦\†ä âârþ•ŽOI©ÿ:=Õ—ôô;®æ·hi6þÆ•5Í,`NÅž0ß:4ýz–<Ãpm[|ïÚÚ½óGKsãÿɍí#nŒ\²øó<–X#*û$™ü÷y< dø/ø3Éþÿ$ A”
+xÚµ[ëã¶ÿ¾…‘/•‘³">E¥E&½¼€¢èeÑHòÁëÕ®Ý[¯/–÷6׿¾3áHJòc/W¼–%r8œÇoÔU³ûY5ûöª:òýÕõÕßÔj&êR
+£g×w3á\Y×nfU֍›]ßÎ~*þò8_¨ª*¾Ÿ‹âq.ëâ°ßÍÒ·OpgŸÃfGÏhØa7ÿåú ì2ÊÊ–JÀºDò
+N|Þ½†?øÜ·~š3!ÊƉÓQr¶®tô³ÿ
+ãw¸ö=|ೄO«K[|…×ø´]d#¡çL)tôT©½‹¹±Uéj6ñ~.]ÑîqmœD ‚©J¸ðÁoåï-™Avç/ÿŽë"¯»§-Z¸ÜûG.-|^ùɲB‚y©ñ‹oŒ™¹²±–­«Ò4õl¡t©uР̾éP0û¥_ó¡*!´
+È^è’%u½FÉö‚ƒ¨Ç¸Ô›-¡
+(·7Šw¬ÉÕ\6ÅÛ¹©é×=­¸PJÓ 0=xúiÞz-Ó£%[âŠîñM-^ªâ°žËiÆ¥yõœ¿÷-©’7:c›¦ç÷kõùçÛÛ’U†‘1nß%¦z[2t÷rƒ[[î?xnïvl	0â÷‹Æ¾ÅY{¼Z1Ú#x$‚ž8O[òz$>OiïwÛ‰­CÔ¥r´]½7A‘ãݸ’aså„Hm)j96…)AéR™ÞŸ~®Lņ	ÿJ5Û£]úË7ß^Í~ÅëÛ ÷J¦=¡‚Pt¥hó4~Ê⛹3Å>Üü¹RÕ\ƒu­Øi7]æ¸Î«“|Ðè¡»¹ f†D`?Âóƒ+=x‚Úì—Ý; šôˆã7¤AT÷ƒÙD”!¸CŒ&xyH|3·Z§KDáÌÖI{ÆloýbwO>xü"Æ<W~ù`u©úÕ—qTŽ6¾®TnQDcº\œë½ì™Lß3:ij¢týÞÀȡƶÃj+.3^WeRðb8œ–$6¯š…uñ³P:„®'öÛÏð‘·ßû)ïú˜Æ±å‘fÀ3o .Œ-þÓRìíüýlO™þE­K«UÜÔx/MYÉ&ÕünŠŽ(e$sýê:Õ79ry“a<£Gcgb”¶>D«J•$»P‚p”è€'	ÀjNB†2Fw ýä­pa;ã¨ÂX¶]ÇhØyASLLmyÜp ‡ËñxgÁø´½ÜNì§9ä} Y 9û;‡qHsˆqË!
+q8ô=N^=òú*3zŒ®¿ÑýGÞb4î	_TU™ší)WHôüÙ‘ô&£y M¥)½±ö2E6*bHH96‚)H¢uƒÞ†{zÁ8
+VO#öä kð˜ä90ïÆ‚æ—Ï8®m§²¡ÁkqÚ¯…{â)WV¢¾ÄµužØ¬=ìy½§´…ôX¡&$WŽ„½Ã\8˜„Z"‹r¸™­ŒÀÿ†ç½ãÏ—ü9h€½Ò‚)d†ÜRÄÄükå™@D'ì³,Ÿ‘øΏýP–¶”Ò~P¾ ¶WP‰%Ä^{*¾bb<¨Ø&Ä|.¬t“¡ßÅ|\†˜Yèú²€d_&ȳ‰/ÉPøülÊÕ€
+&Ã’ãµ(¶²Q+¹º¹¬V2"ÍGl_+™*÷M¾\ö9‹WŒÁ"³Z—FôÁdëSÕ§(›ždħ6nK¥.­µ°P¿D·Iq¼Ô2œKs%>x~—}mŠMP„U¤¬àª)k1 Ã‘Ä< ÂÝ„WiÈC÷±àŽ5ꢏ²c÷i½7uہžsÕ5àî…~9®‘ÐùÉ&ÙG9ÚØÄjÈßOXØ°$h“U²ØgR¥•ƒ2ä”+;m.\ð£vÇ·«µŽRÝÒ]´bße¢ç*«2¸ÄÀië€<}KɽWÚv™„XÌÊ´mB«KÍøI¦Å©V©çµvÍPA¿ñÀíçí[?¢óÄùβ¯“òF÷^2[˜¦´jÐ~¸
+^رÛ:K{­Åª™ûɘmpýýf€Æ¦úí¯x(‰©Ã~[-}³†<Ӑn·ðêüŒ˜;†ˆI=ÒOXb½ÌkïzMï=á<š˜}ØùoN㎂O¾µL?´¾lmªFLQ"æQö‚«– !È;CtM¾©<ýèÚÐÈ„n/>›æ}÷¸&ù…rË1’f›‚hŽ7]>
+ƒº¨[QXøÙÏþ¢êQyô®³\ÅxLâ¢YzB´Þ„”`XÔV\ÍrCVr5ûšJ¦ÅU›bÕ÷²;ö¯nsB5k/`A‰‹ÏA*<âÕšíâD/øÓ&ðP¡ä±¨áßH~k[‹[ýÀãv…m°!e)ŒÍsXi+¢Öá%קÃ`$J£Ìñ`$K£ÝÙDW¡z/K$‰PÈ‹ðñ*=ªèÚÈsª8ˆQh0QïÎÿbwÀYÛ ª¾!LŽñÊ©h NuMîâëú󆀗 wFV?a7¸0"³Ëñ~ÞbûœÀÎçH=ØmFpÀáœ*®{‡m=‰‰ˆÇëìyÄyC¸2µ‡v‚åK†«q0
+Q"#›àÞß“NR
+’Çë›~G€r´È:44ÖSÉ6DפŽ_4«<Øh®ãüÃŽT÷”ÀýmåÖ?öQr‘¾7ûÈÚö(•¶mÆ2&®œ»¿çFCv½öÚý8u-'“9…Çe½Z§éM„ùÖË 4ÿº°Ï*àòuà½å›ú8KඑÏÆÁ[!¥ÏU‚JØ‘)I†o½Ñ÷I¸2ÍéÚ»ŽyÝ`3˜=…àFê›–ì# ^¦Íߦïƒ=¯YêœÃI9„?›i
+^/ZFêYVæ³·ÛôI"\bgîæ	o{ÿ˜à)´¢žx¥{ΟpÒ³ÝF™)åI‹OêD)¨Å6È6‚6)‚nQO쿇Ð'YÇùd3¡àéýÓC‚·ã™P¥2_<ô~9n 	ÓÑ	z'¦IK…“> .¨FaõAÙôõ¹?ì˺þ¦™¢ÕFÞ[êa/æ}ÙïõF¤·Û¬Bwç;Ðþ¸8Ì&·eîR\ƒŸßì:„´ê½÷‹ É—´œ^h9ãGO©ññÜláêRj9®É×Áä›c:èâÓ£å|¯RwsÑ(uØfË	 ÞÈœ‘Ô»ÊÎ0ÙYÔÂßqúɸ{5Õ7P46îâÓéSçQ¼+ê+ˆÞKÏ ¯¨]ñ.Í`ZÓ­mç	º¹$¤wýXB‹Ò)7­—eðqÓSÝûj‘“Š>u×G[uµ+…ªÏ´NãÛƒ\)ô³´ÉK}´ ÔüöIª‰G§?-2ò8_’qîræ|ÅbdàXuYSüO¬[O•ÒJ`5Â~pH3,ƒœî„biÔDÏÞïö)èFûA›äàj¢™¨Î=ð®xò6¦&ìÆÍ”¼‹§¬úDÛÈ:ú‘k
+nMAM|=çìð"MÁÜ¡¦|3`ß(»Q_,ëÉi]Öñý‘×£²ib³fô2yXL6{À>)Áò™—ßðù’o‡´Ë´—àFΘòýÁÿÞ†×N:ô\ñ¼yÿ!ädRº²‚<qt~?y†µpSDìPþ-ÁÐ=Ãzòß±ï™	¬® 
+MšzÔÄ8¸>àÃ3á ~ßöG|I;â)¶@£/fgA‡ÐëÒ6n£‹íáǤn»À 7ŽÖ¡‘[ ½™S­>Ú¼õü£¾¾¾úõJD˦ªÁ’dY;1[m¯~ú¥šÝ³ÐÈ!º<ÓÈíLãCƒ®õ0ûñê)
+pÍÊ‚ë5¥Ýž Q¡
+©˜yRïRèPñXvø„ÞGÌÞesÌDC`ÃsGîw<uáØø~pÌ;¤7<ϪËZ©“Îw‚‚³·ÉóãÎÚì™ù<3&<ÉÔl¤.m%>BGcSÒ¾ÄR¼êª<F)¨Ô,HßÑ	í@~‡Í÷)éðf­¾¤Ù¸Œž…Èæ0¶²r)ýªr>Fh÷}k“æ°¯·ƒƒMtÖ´ËJ³?y[‡~ßÄÛ²Æb›5–Aª¦ósçNË›XâËyâKßnÿz·÷}á_³œ‘¥®âx~o4¼) øܲXááü’ÅvÙÛáoþN惍¡½q at Z!“°ü–%N¼õ«ˆgáÙ&.<ˆÂ$’Pڍ޷ÇÀTvìY4YÜú„Ñ·gsùg>!Ì•¾!#'}BŠº¬¬Í-kׄˆl
+`HÔª”FdÙgÊ0özœÁW{†šÞ‹8H7KÀûÄ?Òp¶´îøÁR&ÀµØ]e‘†”1XŒÍèn)zqYø†Lì¥âJ¹‚llhâ;ÓM”‡•þ¶
+ö¸Y(!åØjDUÑˁ¼É’‚”—E˜¾ðïr{"›þuv¶½ûvÿàgs)?+ßZ%4`GÍ+—ßÉÈê%Â9¢)®*βóO–lVR]¬'{NOŸ›ß£¥AÙø;9éÕt„c*	ó-£é×G“g ×4ŏЖü,9£ÿ'¦"nŒ\¢øóq,q¦Tî%H2ù¿Tòx Èðÿ•ø7Cøÿ?Õï·5
 endstream
 endobj
 86 0 obj <<
 /Type /Page
-/Contents 94 0 R
-/Resources 93 0 R
+/Contents 98 0 R
+/Resources 97 0 R
 /MediaBox [0 0 595.913 842.74]
-/Parent 109 0 R
-/Annots [ 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R ]
+/Parent 113 0 R
+/Annots [ 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R ]
 >> endobj
 87 0 obj <<
 /Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [117.977 578.67 226.727 589.543]
+/A << /S /GoTo /D (cite.JSS:Rcpp) >>
+>> endobj
+88 0 obj <<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [230.906 578.67 256.408 589.543]
+/A << /S /GoTo /D (cite.JSS:Rcpp) >>
+>> endobj
+89 0 obj <<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [173.14 516.676 280.79 527.55]
+/A << /S /GoTo /D (cite.CRAN:Rcpp) >>
+>> endobj
+90 0 obj <<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [284.419 516.676 309.41 527.55]
+/A << /S /GoTo /D (cite.CRAN:Rcpp) >>
+>> endobj
+91 0 obj <<
+/Type /Annot
 /Border[0 0 0]/H/I/C[0 1 1]
-/Rect [106.407 381.527 230.556 392.4]
+/Rect [105.82 381.527 229.968 392.4]
 /Subtype/Link/A<</Type/Action/S/URI/URI(http://eigen.tuxfamily.org)>>
 >> endobj
-88 0 obj <<
+92 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[0 1 0]
 /Rect [385.508 326.732 487.691 337.606]
 /A << /S /GoTo /D (cite.Abrahams+Gurtovoy:2004:TemplateMetaprogramming) >>
 >> endobj
-89 0 obj <<
+93 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[0 1 0]
 /Rect [491.479 326.732 511.87 337.606]
 /A << /S /GoTo /D (cite.Abrahams+Gurtovoy:2004:TemplateMetaprogramming) >>
 >> endobj
-90 0 obj <<
+94 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
 /Rect [329.2 305.317 335.792 315.271]
 /A << /S /GoTo /D (table.1) >>
 >> endobj
-91 0 obj <<
+95 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
 /Rect [228.625 283.148 235.218 293.353]
 /A << /S /GoTo /D (table.1) >>
 >> endobj
-95 0 obj <<
+99 0 obj <<
 /D [86 0 R /XYZ -19 861.74 null]
 >> endobj
-96 0 obj <<
+100 0 obj <<
 /D [86 0 R /XYZ 54 745.604 null]
 >> endobj
 2 0 obj <<
-/D [86 0 R /XYZ 54 556.849 null]
+/D [86 0 R /XYZ 54 555.683 null]
 >> endobj
 6 0 obj <<
 /D [86 0 R /XYZ 54 420.785 null]
 >> endobj
-106 0 obj <<
+110 0 obj <<
 /D [86 0 R /XYZ 123.852 197.181 null]
 >> endobj
-93 0 obj <<
-/Font << /F73 97 0 R /F78 98 0 R /F21 99 0 R /F55 100 0 R /F50 101 0 R /F94 102 0 R /F95 103 0 R /F96 104 0 R /F8 105 0 R /F15 107 0 R /F104 108 0 R >>
+97 0 obj <<
+/Font << /F73 101 0 R /F78 102 0 R /F21 103 0 R /F55 104 0 R /F50 105 0 R /F94 106 0 R /F95 107 0 R /F96 108 0 R /F8 109 0 R /F15 111 0 R /F104 112 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
-113 0 obj <<
-/Length 3855      
+122 0 obj <<
+/Length 4012      
 /Filter /FlateDecode
 >>
 stream
-xÚÝYoÇù]¿‚ÈKÈÆ\ï\{¤i ×±ƒuÓ:BSÀÉ-¯d6<T’Š¬ßïškwIÑ©Ú ¸œùfæ»/—“›I9ùö¢”ï?^^<}ÙV¥ŠÖ9=¹¼žÔMÑ–õ¤6®¨¬š\¾›¼™ê™šj6WJÛé«üº½Íšvïà«vÓ5Žà³[Ÿ«nÃvºÜðë0¸¼?ÝföóåwO_ºrÛT•ÅËÉ\UEm5oöƒ€Ú"8„Kgsëìôšùùð>Ž_ÉüÍL·´¸O{žo¯ù±Ø8éz‡ÓÖ{[¬à³ØãüŽV˜éþ=í{ÝoxdIÇ ÇËY㦸Ù[YÛáíùð¯0“Ò€_{1yCÛ(™Âô¡A€)ç[œÕv6×5Éß)S´½šÊOBLÀ] øéoñÕ?Ba"I	,Ñ2IèîÂãJ™å0DÀï›)ñdfz$¥áw,’Àh³yU5Óç»Îßm¹!.€Õpß
-ÓN?xðWB+ØÑvÛópË÷<°à¯±+EòÓ<KÜÚÚ„[±Ei- ˆPóz„¡Û¢ªŒŸ°%úÏ]5ýgÇØ!ðK"ʯø‡ˆBO]··L€$ÍÜXSÔ ¡…ë(u•é	Cž¹N«é3Ì
-.¹òì³Û$Ì´„Ó4ˆL·°LVz|Osùü2/“:ÅqyÄ×Ûk˜®‡gm@'(wÏZBäRýÏ$êÁ‘Õx{ZuK”(Ògù]³k=¦iüž×}”å´uEkÚœr#üaš*ò"þHÏ ?_,½VD2‚Ž¹Z	ñöžÆM;}9ƒ©þªMäŽG %H#ñÙóð=ኟï’éÙ9êL­Ó9kàZ-¯—piPŸ|J¦·Ëäª.tÈùJæÞŽÐ]¶3F¯[M÷·a.ë9œõ>ß—EÊ©ÂÔ=ÂÜ{Þ¶*"Áê	ð3G‚•[¯…­r<XÕ×;C<(àû²RC<ð§#EªÈJ†
-8|÷*cgaâ°±…«#
-™?˪hT
-?¢ƒ»j‡”ÜyÅûE&([|OÂqçOÔÉ„·,ZqÊb‡'½¾#– ÑHՁо9p+Øν“{\?ÈkAØrD÷ü:9ÜqMãta\uJÓ4…®ô	ŽðÅðÓV©Ü÷vƒÍ”Öá9Ìúâ‹‘µ.\`¾¤GEoáùo¶ë<éÖÝF8„9ELFc„°
-½õþÝa-(rõRô™eC¸"@*ÿaÅ`Ë<M»¥¾(cÚÕª¸­Wž–¼«‘hÁâ5.dž(2ÂÿúLa[ñwßѝk§Cª«ÂÖmâêjquŸíGF“Þ³7+„&Ç–4q]…SŽmª¡tݲ>J-&ÎœMlæUñ¼\t‚¶ºIѦšÂÚÖ#Õ±³jKœ–hÜaËÕVûŽ± ë&§”ZÎmPãŸÃ¤ßÁçó15^.ÎÜF6Ù-†÷=xhØò:!øÀ¿¸Œi¸©ònn…U—©½ô,…Òeìôû«ú~™ð	®µ	öÈÖÕëÑš©OPR4˜
--ß{»	§Íáé~é
-OkR[QhZôŒS
-^èà˜´&ÅÒ‡qà^'àè–—-Ä4¹jK)¯[]X´Ö31;ÁÙÃÛÕE©‚êõþCÔ$ÁtÂùs/§“ë}ÏÞ4ùË͈X@ÜÚ‚\ôèG¤Ã¥»n†¸¹	
-]Ñ+œß#ä½÷šìãd$‡¦$K¾
-¤¤Íˆ‚‡àpéÈeI530@•à2Jµ°8‡JUÑê&xÚxîÃûÄ&ÑYR¬¼ê«6úãàï¨
-ûjÍ#gÌ44Þ'g‰«k¸f¤Æ˜qÜY£ËîØŽ¡_3jJ±MbŒX„ˆ§»«ÃÝnvNúó_^UèMÔç©å¹ŸY’Ë÷¢)˜ñ[/Cf‡X±TêLà
-Ï500°Q‰Ü6£Á“Îb¼Óï}äwœ¶ä$¿ä
-î’Kí巏ÞqÅÂë9XŒ&y¢×ùCÀx=r,5}ÂA7{þÞÄÞüÕâԝˆá€®Ïo‰¥6pÀ·	äwž7`|,Û„&Æ)t\`~Sò²Mpæillù|•ðö^æÃ4œ¢‡iA3ãV%êO ®hË·Ñu+†@é¦?)cáׯ¸S‡JnÿÙLéj*§#-áâ38F”âû ÞiË<Nî%Ÿ$N «XS°„cW
-ŇÅÇ}P3”ø2‘ëNÒ1¦
-Ê—Í:­	ÑU2åš_…Ô£©z¦G([g|ä,ûù´  ê{:ËÔ¡ö¨­ÊüEÜuÁËÇøž’…·‚1#h%+Ź‹Î¼Ã¸ÙÛ¦+t‹9¡Q ÖŽ_‚~u˜˜ÄThpq´Žì›JÞªãåžÿmž^°Œ¿$xH&í–¤¸„rUx¹L==¼àXtÉpçSIž'|'²ê^Ë	[o"
-#ø?qÉ‘þT*ëÝ	‰œ|º–òa;8IÈ7xŸxyà7}né›=[Àq½Ù3ª€À’Ï,Þv-û€¡Côñ^D>°qݤ«Š)
-Û‹ƒÚ¢ÑÕc1¯x,8ƒ$÷›Ä6,SG7@=‹°yZËÕÁ›Ì>"|ŸR&§5p6º+ m$<“Ã]v§5t0
-DBÄ‘ÓGg÷€™Ø°Íõ—y9`®0®uðA–eD)R½²s.É…ÄÔ±¬„m]šÓÉÖR·ÇS *·™“.|»ÈÓ	;oz׃ªäxL¨;H±z‰=€]h£sTéc¨zþ˜ç¸ë¼;B1dH™ocŽmóºÖw3⚃·f©À¼ïS_Êç>ñÖÇÒ£®,J—º÷·©rð$I¤gxUorÃU'ó¦-\©ò{>‹¾|—„1ktHJoÑm;ÜÀО£øÀ®KR%/./þu¡¨R¦|qÒT¨“ÉÕúâÍÏåä¼úËhm3¹§‰ë‰µ®h(¹°šüpñ·D[¨²‚X«4êŒrÛ ¾fT«E;,Ù•¡šÚCuU—’¶Ñ…†ó‘‹uŒ¾»½àls“1Ë^?„«‹Ú˜Ì«uRñíO ›¼ñ¼ôø¼,
-ÿÈÜß?2çÔõ2\Íå~™½üBVž{WÓøLìÿs­ô鐷ðÎçC¸6ð§jä}ø‰Š4Dæª9‘Y>yž¹Óæl!yúR9°£m…žh{P	1«ýÕÇŁqë׈~ßõÎdêÂ5!ðõofÈ3ß`#´AÀóðž`n*]Ç”âo=²ÎO¥+?'öЦš¢ŽÙóO@ʏd¥¼"úßÉJs[kæ¨>‰]¡\p-Ï$ºÏΘàÐ?–¯s•Gæt8
-<®ÏÇ»ÇA`¸õž»©çaKa•/7$Á‘”oBÔ¦yùgcõ€ûV–ûQçÐ@ÖyRÇп{=tÔ}sƒeAôRhGòqÂf”EªBÅ4¿_Wþu,TE9j9ÖÆ–11jÏGk¾­mR7zãe ª.šÈèÇ£Û²Ð*ár•û}'ÉD«Bäs*d«tÑ6ÍãÛžT¾T\¦ìõ \«%PXoÒ”ñù\K´”íÌëHЂí†!ô‰X1Ñ1Ln¦´’k³ò>N\2ÈqÛ°Äãž2Ì¿Ì\=Mû
-c3RÅ/eªÓñr1“¶ÀY廵Fn¤!Ȫ3W‹ü¬àµŽ6PZï¨ý}±ãÓŽÂh;)ìJ¼&·ÄÄ¢-“Ž-î•¢Äm—”-
-åö¾kÐúª"—eZŒ_mÎ;´\mÅo\†¬µy¤5ogy…ÏÏÞȧ·ä”`(4ñÎi±8Ýa‘Uìå W¾L±ðí+ΣÖ/¿Ê]¬·	·oø^+„sãû³87%Efzµô‚DljÅÆ]’¶ ÄírÁnbËYXÙo}Iæ*v±Y°m5R|Ë®fTãƒü•Ï©:ôN(JgU±zäÏMçgÄ
-Ì(XÝ…š—Úø¹ê)€\cÕ¦Pu°
-NX뗌͕º·½ÀUm=ÈÇ<™‘÷ߍ0¦¶-êReªkä.Í@C‚<ÜÏÇZeÀý0uP;ßÈqÐ^"Áñ¨"›É·Ãçïáó—1…l-nJJ±¶D_ïlKÑ€WS}KaӾЬÚhš“•oì(
-?|¤¤ûld;£Ò.ÓÔd׃Y¦9{ÈãûÑõªÊ\ŠvM(¢í¿yeÀe̬Ñþˆ»ú.ë¹<.Òà‘„$ºc1†;×7¬V».i9zà#UöY Ô0U=,ÏîPJ=šc=†"[¦5òÇPTþǹ\0ímc’VWë4‰í¦WæŸÝ‡EhGA·zÏÃoCIoÊ&éÁç%úá{Z¨ˆ”UšãV±éo‘š¡eÚÆ‚‡ý]Yƒ	U„©…ôm¬è%ÐCA»í`¢°Â^±ªçYÄ#[•–3·Y*A£ ý±þsß"†ZOnüzÉï^gÄÝôIv0¾­U©sSW1m~àzÜuwÏ/Æá®Ïy9ìÃ)k°Í«DÙpÃ@¯
-,Àð)÷Õõxm­× Óö²*ü·¼É•GìJ~]%Õ[ø±Þ&wA-`<ÒC³âJnæ22E£tÞ+ÕÂ$î¢"Æ.”´V§øǁ"©O… s!‰ì"+üHO±Ê»má[OŸ´…ötJ*fרB¶ë±PPmÛžÝ Tf½xÛ¤Ò¼MúRhˤÐÓ;¤/yDq׶EiÕÙåÆþ­Çûy
-öq—MÞÏkÒÿºv9k
-3õFzeŒ\LªÙ”ͨm¨ÜÖäxñ°o|׶|…n¼ì‡Ç»}½Wƒ‚£(‰XbM:îZ6“ÔË2ëTàCŠíRÉç'Jªw_³ÿJ	7Ìѯ¯°e‘×Gr²@‰	«¢+œÆ((Ç€žåI¸‘ìÖ´a«5Ò#ð†€ò&?3p?¤iˆN¿2Q—odÕ^©ËÖÁoþ¶cofº@Ë·;¶Àôù®²ãÓ—M’ÕhÄ È¢üºöétþ‹Ë‹¶Ó+ž
+xÚÝÙn×õ]_Aä%dcNæn³¤i ×±ƒuÓ:BSÀ.PZ¢$6\T’Š¬¿ïÙî63\âú¡-šÃ;w;ûªrt;*Gß]”òýûË‹/_µÕH©¢uN.oFuS´e=ª+*«F—×£·c=QãBM¦Ji;~=ƒ_÷÷“©Qãù5|Õn¼Â±=|¶øïj¾Ãa;^¬ùõK\ÜÂóõäï—ßùÊ•#8¦ª,žXŽ¦ª*j«ù°e«
+n‡ûÒÂÉÔ:;¾¡A~ÞßÅñ+™¿žè–ÏÃÓŽgàÛ~ì^6NºÙⴕ쏝#–ð™ípþœV˜ñîŽN†³×<² kÐãå¤qc<콬#ô€|øW˜ÑiÀo¾»½¥c”LaúÐ ì)÷›É>ËÍdªkº’‡)Sgt¼ËOBLÀGøéïñÕ?Bá|"I	,Ñ2Iöá‰q¥L‚r¢Í›)ñdfz%¥áOé-’Àh“iU5ãÛ¹‡m±&.€Õ ïš¿i§ïýöWB+8ÑNÛñ åÌøk¤H~š‡Û·¶6áVclQZ("Ô¼`趨*ã'lˆþSWÿ9gìÐö"Ê/ø…žæÜÞ3u4ScMQƒ„fB®Û£ÔU¦#óð$ÈuZŸ£`V äÒ³Ïv0ÓnÓ 2q»…lËd¥Ç;šË÷—y™¼Ð-Ë#¾ÞÜÈ®é:xÖt‚rÇñ¬u D.ÕøN¢.ð‘Y§U÷ôA‰"}–ځuJÓø3oº(!ÊiëŠÖ´9åøÃ4UäEü‘Þ~¾\x­ˆdsµâí<›vüjS=¨MäŽGvJFâ³ãáGÂ??$Ó³{Ô™Z§{>VÀµ,Z^/áÒ >ù–Lo—ÉU]è&óµÌ½ »	lg‚[w÷²Ã6 ë9œõ>ÃË"åTaêa=o[‘`u†ø™#Á
+Ô+a«VuõN
+ø¾¬Tü™“"Ud%„²¾{ˆ1Ž³0ôqØØÂÕ…ÌŸeU4ªƒ†ŸÐˆ¬Ú!%^ñ>C‘	Êß“p<øÍeÂ{­8e¶Å›Þ<KÐèZ¤jÏ?÷h߸l箎›'y-èGÈãŽ_'—;¬iœ.Œ«Žiš¦Ð•>¢Ñq1ütT*÷Óà0å‚ux³¾øbàD­˜€ô¨˜Ç[x~·mçÈt«ùZ8„9ELFc„°
+ozïý+‚a-(rõBô™eC¸$@*ÿiÅ`Ã<M§¥¾•]†´«UñX¯<-yW"Ñ‚Åk\Ž
+Qd„ÿô™Â¶:ãﮣ;Õ
+4N
+†TW…­ÛÄÕÕâê>ß2ŽŒ&+¼coVMŽ-iâytŽ9¶©†ÒuËú(µX8˜8Kp71°™WÅór=2´ÕMŠ6ÕÖ¶	¬¨ÝU[@Xâ´DãG.7BØkÆ‚®›\œRj9[´Aÿ&ý>Ÿ©ñªpqæ&²ÉvÖ‡wïE agÈë„àÏùeÏ
+`L8¤nÈ»¹V]¤ô³J—±ã®’Ýw‹„çH pý“¨M°G¶®XÖŒEx‚’¢ÁThîÍ:Xhœ6…§Ç…7<­I1Dl¹DY iÑ3Æí˜jðBǤ5)–>oîuBØÝò²…˜&Wm)åu«k‚Öz.†`+8{b»º(UP½Þˆš$˜N¸îåÌÜ oàÙ›&¿b±ˆ[[‹Ž}B:\
+ØMp3ÄÍMh(èŠ^áôwÞy¯Éž&#94%YòM %F܇KG.kL⨙žʨÀ(ÔÂì*UE«›àiã½÷w‰M¢»¤XyÝUmþö[ÆÁ_QvÕšGΐih¼OÎW× qM?H1#"BÔÆ]üIÀnÙŽ¡_ƒ¨®êñ^£7.ïPѪm_y»H…–=ÞyªàO|&ÒßÉæþÎœ–¨f÷ñ’²Svß ÐÆ¿¤¯Ž,ÈÇgÝÛ†©vÀpðüëÖ3Tšh¢œb/åŠÆË»:Ó5ªÐÑës˜:`Ãm]¨²0áFLø{<öájÿ°œ“¯òú"9DUèþÕçÙÑ©Ÿ™þË;Qí¬©Z¯µúÚ	‚ûR©3m¶+\¼WÏ#€ƒš(•m3íµ
+™½p)üÞE…ÓœuâW½DÏCÔN~ût®˜yËчZ!GÌý%`¼¸–?ã,	‡jÞ'º•ý—³c0‘† "¸®‚H\+|Ÿì|íyƇ҃è8…œBdJ^¶N”Œ
+-†¯’Èq'sanÑÁ´ ™q	+ƒÕó·À­®èÈ÷Ñ×·=¶Òß)cá×/xÒ­ÒÒÕXnGBçâSnFG:5G才N¶P;Åšº‡%ëù¾8(A>¢L¥©ˆ\’?3U°–ì‡Ñš'SnøUÈ›ª£/q„ҫƧ:ä<ŸÇ•º®é"@€=j«2Oñò!¾§‹dùÁØŽ´’[Á!”‹Ñ—ÃD‡w&®|”l,&q„FX[~±Ù‡™dÝúC™¯mÙ7•¼åœ—{þ·y>È2þ’h/™´]d;Å%”\Dx˜+ðûwκ Kú'ËÊ=c˜È
+óZN0˜ì°ñ‡ÑpÀè€C’ÚïJe½ÿ'¡®Ï¯Sb(7		"Ä,öü¦Ë-â§ãg¸®–ð̦Õr¿`ñ6+ïº8öUè,"ظù¤«Š9(Û	\Û¢ÑÕ©$… :Xm’ûub2')Oxaó´ÐÁýÌž>N(Hê-ó6¢³Ñó
+\"¹ßUàxZCw£@O„DÒ!@<jÙópÌÍWy	gª0áàc˸RÞ£IK=ι$ß’‰‡2I¶-tiŽ'ÈKÝN[ÂÜg•°î,Om½õ]õ’Þ’/â1!p/-:èÙwP qO¡ÎQ¥¡êEîí÷S³Û¹÷H(îïlRæǘCǼ™¼ðwÁa³ŽT`ö÷éÚ¯äó˜DXC)mW¥KC²ûT?x’$ÔÕ[Ý êhÚ´…+UçóÈà‹ë$ô\ñF7‰¤tÎõ¶õ)í8óØuAÚäâååÅ¿.U7•/(A¥FW«‹·/G×ðî{¬}¶Íè‘f®FÖÂÊ-G?^ü%Ý£7¿é¦)j`ù#{”£ª"›É[P5TZ±ÎZ†x÷
+Ã]JÛFî
+h,Êða'H[ßfÜÒ߯w×EmLæÙ‡â¶ø÷G6½õÌtz^V;91÷·'æ/ÃÕTàË|–ÿ!dåªÿͧÏÿ˜«¥O‡¼™w >’À½ÿªFÞ‡Ÿ¸S@‘†è\5GÊGï3uÚœ-$_¾Ri[¡7êTB,E|ýëˆâÀºu{Ãw;™ºpMÈ|óÑyæ,L…ÞxîÃ	ö¦ÒuÌ셐uÞ•®üDœØA›cKŸ€”¿’•ò2ö'+Mm­™£úi>å‚oy&‘Ð÷x~Æ<Ødù:Wyd^‡ÓÀƒàûüz—¡ç¹àîø]Ï…]‰ÔÁó{Õ±‰'ñ˜$ÒôÈP›ÖRžÕÐ4la±t}Ñj%Á'õÞôý»7}GÝg†-Ë¡B™ÖƒR*V
+°aá¥0埇bIU4‘¡C­W`›öb°NßÚ&u£×^º[ÕEùüp€[Z%L®òào·›K>ѪùÙ*]´MsúØ3ãê—÷딝¾Ë»
+‡½";`D§Éäò¹‘ *»B0º©lvƒ¢¶ŒÝu¶é")KˆZ¢r#çgé½ ¸¤›	¯âI‰6î´äö™Ÿ9w¨¥Ì‚)çšp
+ö®CùAòÙœ•®--^-|ÂH_^'}KŸ­¤E¨K™—vC"(g¸õƒïJSN¬«ƒS³ØuBR<ïx)lŠ!s	UöV3[Ó¥WˆŸ'ŽÑpÛÕ”³@ÕIîn|~¬+Q oOtEºÈ_)JãÛx´Bô$ȍ%6DƒÅ¯.ãJH[ŸÖ…Cï¹#–JpcŠ¸´”¸-uÒÂÈ̓”Ÿ'u|Üå‘HÚhËØiïhKÎ7-CKgÒÏZæͱ¥ä=óÜÊ'L» qi+sŽziÌáÞ¢*Oe³Ši›BµU¿ ª¾vá”G¬ß󡯺hZçdL*Ú.´8*ÉüIϽZxeDwŒµ÷­ïÁI‡;¾”fmÏA”©‚‡¶ÛxÕpï; „ò™’%eù¶ô=‹ø™ù:KÞm\œ–©RH='ÈJ
+8ü\vTd›‡—{-lNÂ?&Šõçäïs)èýjK at ats[Ï&Hu‡ƒõžÛ.§NŒ=Ø°2IëÃ8RãχzÄ* .vh|+÷@MÔÅ;þŸ±èÿ§¡Tœ-êèDxR²lp÷aç္íÚÕ<C÷Qvuàb±W&«ÚšæhM[©Ã>|¤4ûì@I^gíYÛ!ð`–iŽíÝç‡áórð”¶?›PŒÜ†¼2àv›ÔêìxÑ‘yº~£ëø. òTVWgÖëx}Ä°ý]nçI¯Ý¿¨.±VN4UÝ×Ê»”R'Õ‡PdË´×àŠÊÿ8!&¼FŠêïšÄvÝ©¥óÏù‡YèÃòŠ†ß‡Òè2ÔpLbdðyÁ¦…~øf.*ÆeûxTìvƒ3PÆ¿¨ùCƒש}ú},Ž&„Úºf”M
+»aØ'Yuôv¼µUie8	?¤¨6IÕ&
+ÍÎŒCúöÏÙ¿N¡S/óú¼ŽÞ¦/Vèµ:¯¹^†Þ­*–ö\Ú¼™?ò‹!ÚÃph‘€ç¼²øăá–u=^,}ýÈ°§lŸu–ÕÃeÊNs&LÛɪð'cÉ•GìRÌ~]%…pø±Ú$° "0žé‚¡ƒl)ù‹L…ƒÀßSzȏ_%ñ+ƒ¶¡4¸|:Æ?tI}ÌÛw˜RJÄYá'êú‹óMü“ˆ§OÚ>~¼œ'•ÇÔ"›ÕPÿ3hǶmÏî¥*³>ÔMR´OûéȤ`Ö¹¤/©yDöq׶EiÕÙeÛ.ÔÃ}pÿ†!4Â5IIÓÿÙæå¤5hJÛ‘À¤1€²B!@åN÷õÄHøzëH°{.4® °Žt¾›üoH¼ÂènEIÄn…Ðo¢;Eýy
+k‘5}ð%Å|©²íÜ(©‚~þ+e
+0³F¿¾Æv]~\H©Ê%V¬Šnp ÿ>z’ç2ó\I“ä]5*yÍiU„RùN¼¼¼ø7;N«
 endstream
 endobj
-112 0 obj <<
+121 0 obj <<
 /Type /Page
-/Contents 113 0 R
-/Resources 111 0 R
+/Contents 122 0 R
+/Resources 120 0 R
 /MediaBox [0 0 595.913 842.74]
-/Parent 109 0 R
-/Annots [ 92 0 R ]
+/Parent 113 0 R
+/Annots [ 96 0 R 117 0 R 118 0 R 119 0 R ]
 >> endobj
-92 0 obj <<
+96 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
 /Rect [367.787 716.163 374.379 726.118]
 /A << /S /GoTo /D (table.1) >>
 >> endobj
-114 0 obj <<
-/D [112 0 R /XYZ -19 861.74 null]
+117 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[0 1 1]
+/Rect [111.605 257.263 165.279 268.137]
+/Subtype/Link/A<</Type/Action/S/URI/URI(http://finzi.psych.upenn.edu/R/library/inline/html/cxxfunction.html)>>
 >> endobj
+118 0 obj <<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [236.009 257.263 454.236 268.137]
+/A << /S /GoTo /D (cite.CRAN:inline) >>
+>> endobj
+119 0 obj <<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [458.82 257.263 479.211 268.137]
+/A << /S /GoTo /D (cite.CRAN:inline) >>
+>> endobj
+123 0 obj <<
+/D [121 0 R /XYZ -19 861.74 null]
+>> endobj
 10 0 obj <<
-/D [112 0 R /XYZ 54 745.604 null]
+/D [121 0 R /XYZ 54 745.604 null]
 >> endobj
 14 0 obj <<
-/D [112 0 R /XYZ 54 638.876 null]
+/D [121 0 R /XYZ 54 638.876 null]
 >> endobj
 18 0 obj <<
-/D [112 0 R /XYZ 54 562.779 null]
+/D [121 0 R /XYZ 54 553.559 null]
 >> endobj
 22 0 obj <<
-/D [112 0 R /XYZ 54 474.759 null]
+/D [121 0 R /XYZ 54 463.8 null]
 >> endobj
-115 0 obj <<
-/D [112 0 R /XYZ 54 435.007 null]
+124 0 obj <<
+/D [121 0 R /XYZ 54 424.048 null]
 >> endobj
-116 0 obj <<
-/D [112 0 R /XYZ 54 420.063 null]
+125 0 obj <<
+/D [121 0 R /XYZ 54 409.104 null]
 >> endobj
-117 0 obj <<
-/D [112 0 R /XYZ 54 406.858 null]
+126 0 obj <<
+/D [121 0 R /XYZ 54 395.899 null]
 >> endobj
 26 0 obj <<
-/D [112 0 R /XYZ 54 180.478 null]
+/D [121 0 R /XYZ 54 158.56 null]
 >> endobj
-111 0 obj <<
-/Font << /F96 104 0 R /F50 101 0 R /F94 102 0 R /F95 103 0 R /F78 98 0 R /F55 100 0 R /F15 107 0 R /F109 118 0 R /F8 105 0 R >>
+120 0 obj <<
+/Font << /F96 108 0 R /F50 105 0 R /F94 106 0 R /F95 107 0 R /F78 102 0 R /F55 104 0 R /F15 111 0 R /F109 127 0 R /F8 109 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
-122 0 obj <<
-/Length 2692      
+132 0 obj <<
+/Length 2336      
 /Filter /FlateDecode
 >>
 stream
-xÚíýoÛ¸õ÷üBq‡³o1+~JꮚàzØa¶^°Èƒç(©»8ÉÙNÓý÷{||¤HIvìÚéºC~ESOäûæã{Tž]dyöÓAN÷£“ƒ§¯x^e%«ŒQÙÉyV at 3/²BjfÏNβÓÁ‹áH9Xù`	×®_sÃí¥kòồŸŸ¾ªt4b¦*³7¬’ƍ3è+Ç;…&‡ë\®C×í»\ï|Þ„»IwSî¦ÝÍ8t¡0Šq(cÂál8’Šn¡¹¨]{ùþÔ}¤TÀ
-Ã<üH–-7p]S»îÁDi&5÷#Ìê!Ív=‰Âãr~#C[à$:E
-f$S¢ðƒýPÓ‹š±Œ{özìqœ~‚Ÿ·¶Ñƒ”1Àž€Ô .ÇDâÁâÚ!7¯íË®ù•ë™.SÀy`È
-RøÁìÜ?žüv`gË3îµÌ”“…Ê&³ƒÓwyvÏ~Îr&Ahw9Ë°®¬´/³_þQ1ž›Ìä9ðš1€è’•EACäØ=¿È\ãMcÝ'h!:V†RÀt*30}UUŽw·d1´®¯¥Y¢`…”‰(áº@Á[f®,;%o ÷š4öfØ?Þ³Ž¼„W#¢oÄsVéÿ?f3‚+±¤càO˜u$áÇ‚¤=È8ÎyÄ9-—e*†§@ËS°^SDºÉbå´¬‡Z.j뛌̐5
-_°ó%®Ø<G®i`æúÞlÎ&ÁÚ™)éyøÛUˆØ`Yð”®	¹bïš—÷Ê׏MíX«30}#:vðeX~ØN¡5AwQ¹N²`ºëˇÔEi¡owéä°j„ÐËÏFÈš÷[ [ȶb/Y;D¹¥*—òê+W¥‘*„Ó¨¶ˆ5ã`¸¡œÏ¸#ÌpûÚœëˆñ•+Ý«]>Z\Úð	c3ò®c‰B{n},†!È¿¹|_SŸ)¾‚fnâëöï¹k¾|x_[îÅ×~Ž‚~¾S‚É%Wµnù%|Ð&ªÍ¶A¤—(¾Ù†d7b÷gƒ­1O­fÀnœi鯔,Îõ.âØÍ—Q…MŒckö&{*-`™Íùglˆºû2"‡ÍÍû²Õ©
-žC•E’J8ö©->úš#ל_ø„¾Íí>-ä„ÞžFî‡Ôtí
-®"7sK“Õiî⥛蹻=Áxµß7=i”ÿÐJ§­¹Ž¸€çhyãà“=côú|ðg¿¢þ…
-Øx{FŒúnèzâ@bmö¥KºÆL«E‹à_¹T„ÃV4^W/í‘ß´íîØ¢){¦{ˆóâZvT¤_‘ºù©•i*!™ªxš§:E¸äÔ»&Wu˜&¥|—Ä.‹ÿ(Qá³\‡îM1žÍgá]Ð]ö‘JÓÅ/*ºkºSÖ+µ»<¥¦•½»&iLɨ®¨oÙpm)#aýFâöÏ©Õ[®f},$
-Å%+¹H³t¯†¥P:LñN©³ùtÝyCL
-Îë=™sžZm¬îÝ•Ù>®*V4k…7Öħ&‰Ù%E¦\“æ³O¯³¨!coiЏC]8ö:ã@rŒÒpˆušLÎwÌSV¦ÉSZ¨„ «#£«Ž€¼Ï™œ%H#˜iÇÄÞmÔŸà%¡_;Ÿ’«¨ HJ©ˆN„B@	Þ€ÆMî¾Ðà ý¢ðÁ;¨qpÆ8˶ٚh9OÙ™5^ä|ð'çê,ì¿-u})Å…Cànê†u˜¥3413¼ýq(ÊAT4Z‘¸«öÝl°©Û<hO:¸/#NЉ\΂„'då³F=ë¦iLýÞ!å.õkÉŸ×çu'qý<[il’	%?ËØ쮫	馄ç{‡bä1H»°;J±·=u÷)%#Ì
-ؘT¸}ŸÍ@Ûú‚0L´%²«¿Î9Èú¯sJ U·Ÿ//´³É3מ ЂTnt3·/äø¢‡lçÝ%|6ÅiK•;7ºä ¶~§¬ü"m›¿ØîÉ°Ù~àÞ¯‰ %í—ì¨Â¤6RE‡oÖxQQ1äú@}×w}þ¿„ð0¤®ƒÙÕóq´d͍þ‘«•ÌŽžÈÅ¢kX·äo–Sr}—^¤cß{Ý0%j¾öûô9e8íÔ·Þ¸Œzmó_À3øPûu±ºø¡rˆ ùNµ)
-f*¹>Ô/
-VñrŸµYÂKýXûx¬}ìÄÀ5Ù§~ö=æö¿ºÜ¾P,o(=úšsûrQòßkrß<TrÿhÈïU‡’ûë½,®‚W{MW?º‡vǏîãÑ}8)ù½ê°ÏÚ`'zKÈöå‰uåŸ÷]lXØ$tÛ¤P4iå —û)ÝOÀ?7€9ÝV #YÎÝ–h“ï	®?èÀ¿¥Ýç·îï1æw!ûÝoƒ™p=x¾ÙÒs´Ø÷›mbO‡°&dlˆ·’Nÿ+ðFpŽ:ºÜÀ<*µP
-û¨Il7>fWÕ¡2Éžä¿ŸòÚ¼Û^JÇûÖÓ}TJ·OŸt’8vU©ýTJEøªS)MÕóËVI7ºa•4²˜ã½–W¹Å寮ºï*éQG/V±š¸åÙ««ˆ%–²çT¶F‚Ýr&C3ñt&¯Ñwí™VÙ󂳏¾²ðVN}Eu¸UJM7ƒJIîó‹¹ÿæ Âþ›DDhd¤xe9„×|#!ºßHȦ-’>àþ[	Ž@ O¾™(ûXýM£å;-“»ÒÃQs=eÓ›7ô¨äS÷°§"Þ÷!ȃ–ŽþÒåN¸ëp½6´}ijŠî¬;‹u‹Z>Í_<'C=-­Ž—ôùÍšÒ¶2þT¥wÓ®r&´y¯nÐkßø|k^\hv{­kzŽ p¦â:›Ãöàœ•Ínz:k—¶°ôl•â?Ž¦q´¶ P݇C£–"¡.zï]ss-Ütír£‡âO…ì»ó_gNJ–+ê¬ö,³íÖY%ÕY“j\Au%V8+¯pS.ººp§-°'ª!âòµiåUVn4§X@ɝ-’WÞóa3.ŠøeÀàãú“/‘£j{"7ƒP­º¹^uÑ­ 0
-Zuމ
-¯›#i¦Â0Ý6´ÕÞ¢÷IÉ‹xôRþd˜–õ¢—78|sÜä6 ŒÀ^•j¿·ò´ºófÐÆʆvÜ@óÅÒŸàÒŒ—­õ;UÙøt„ÿtòÀ;¦,ê8á|æ ÜX]Ýg sÍ'U¢$5¥hð²é_iD81Çû|.™Ò[8,oW{}m˜ªxèp¨?5ày­TËÈùè"U™\•yë D•iV…qº,+Øl[%‘ä=ÃfJzÛkv(š‹¸þ¬ç;Öz™¡²ž¹5Po¯ÏédSÉ™4ýuIÜ?-¬ýZ¯×¯ûËî
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/rcpp -r 3231


More information about the Rcpp-commits mailing list