[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\F25BêÆ«DåÇ»z5u)lcü&>,-ºçÆ>^ RÀ½ÿVülíÍîøö8/®õðäYÜöüJÁm
-×gÜY8 Ä5Ôøù_YXÑÖ5 Z´ÍbUi¡µ× ô~{DÁôksf 2h%[4½ÔÂIêæ%K¸ú
-õfSh#[û^ï&7KÕ說_÷4#l§¤`zðöÃö³ÚáõÛ°ÚÃC°ÄUUµÅéa©¦W4(ÔúÐbï;Ò#5nuÒXQêÆ·ýZ}úéÄÀ°T]ùfd»÷ü~øÑö-n
-_ôyÕw=Ènbm)ÊÊD!'7p§|1±c#겫izMÆBÑ>²ÁÕ%RßÃuËrÞî]±ÂÁÁ(z%Kð¥6fë%â UgÚà%uI¯³Ë$YZ{NtÕ\ÐÉ-Ï|÷äVÂÀÆH½ÍÂÈ&Xð:¶ÊæJÔªJ[±ÔÆã:lè ×8©#%Ê ¢Ìn2¥+ at 0¥®Õ:ܦé̦)Ô?ÊJ'x"ì>ÁWº¸;8T«ËàáG4²û¨nÀ@Sÿí6N!Gî3ï FUMyERjSí&FWººÊ½f¬Jrè·9ÿkë h¥k@ºPó
-#+ Xä"l
8M«Fd7T"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^_¸kqy¢SÈãÇÒ É
-p´áE üúçi¢´!ØÌÃTµPª>¯¼kK_Ö\ \Ü·ÍJ^ß¹`ìÈ8û/)1Z·ÉÌ/ó¼-¬©_&Èôd(eMÙ°Á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·NBlL×/aS3~tC&Ü'N<FëTÁo¸¹_ßq#;ã;ë[aâ%Ø:xÉbeZQ&r¿õ^xô¹Gîº. û¤Íλ~¿Ýxථ¼}pXqik É35y$@ ³»w´¸9Deµ8=ÃÏ}îyàMô¦rFÈaÜ÷i·ÎrDÝD:z#¦¬!ódþ%@CÀ;etO¾<~;_ÊnÆÖy®6$?_BìbÎBÒìRÍñæOCÆ +;>Ð 0ñ3÷þö¢
-¨kd×YoâO®Mâ¢=¡±ÞxJ0LüJò¹r)ßëí=8X)6iÜÍÄ ò9ñÚ;>¢fÅ ü'ªEùß¾Á4(gyVè6ðÓþ)»«K@Æû¾pmQ¿²x;×7ôѵ;¸Xseg£Z2T©*ÌØðv=r@¸W¤ï
-6Û^d8É-àÓ'?(úhG;ØÉ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ô.VQCÐ^×)ª$mëj NiLóeàaG¿Oàöµ_{çl}slÀÕuÃuÏU²#AÍ+ôÞ±Ý÷d»2íù»üm°dI>úߥ¥B¤ÃÛ´"Úb×óú£ãjJMÛORÂÍçZÇÑ3öÅ,í6}ȧØÆe²¶_ÚùÓéÞvzæÖ]"3¥0yBzÌ*¼6)RîPOþÀ×L=qñ<Ù§úûx^rîû>ØñBVÂJOþe,!û§iè¿ÀÓ¦)Áù
+²N}pʳ
-yxË¢H]Û´ScuqítWËÞ³ÞhèÝ.ËÄí%à}or;·º×àç7»N>}`¿ðþìì¼4qîÒþÒWW\°³PZsï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_ß¼úù$3mÙ%)Ñ@f¸Ù½úá§rqï¾C#èòL-wg -ºÖãâûWÿLÇ ×,kp½VhÐí1JôO 97A\
-*¿ßÐgÙWKVhlÈ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áXIÔ,wêxË7gþÝ6N<Ò$¨´fÀhÇ10{mwL¹Ë?ó i¡¯Òð©<ëJ6¢¤oÆÜ5YD¶
-`H6PFfì3]0ÖÎàGFCNÏ"öÒÍx þq[ÚÎ eò\ÑMiHÉÝ#EW
-½T\éª-ÃøulÛxåa¦¿ë¼=nFJH9¶Y¢)P¯ éZV¾û¿ÚåA¶áÃeg{÷]ÿXÏöÚõl¸´Jhà5Ï\~ãB6/Φ\ä âârþOI©ÿ:=Õôô;®æ·hi6þÆ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ñ~.]ÑîqmD ©J¸ðÁoåï-Avç/ÿë"¯»§-Z¸ÜûG.-|^ùɲBy©ño¹²±«Ò4õl¡t©uР̾éP0û¥_ó¡*!´
+È^è%u½FÉö¨Ç¸Ô-¡
+(·7w¬ÉÕ\6ÅÛ¹©é×=¸PJÓ 0=xúiÞz-Ó£%[âîñM-^ªâ°ËiÆ¥yõ¿÷-©7:c¦ç÷kõùçÛÛU1nß%¦z[2t÷r[[î?xnïvl 0â÷ƾÅY{¼Z1Ú#x$8O[òz$>OiïwÛCÔ¥r´]½7AãݸasåHm)j96
)AéRÞ~®LÅ ÿJ5Û£]úË7ß^Í~ÅëÛ ÷J¦=¡Pt¥hó4~Êâ¹3Å>Üü¹RÕ\uØi7]æ¸Î«|Ðè¡»¹ fD`?Âó+=xÚìÝ; ôã7¤AT÷ÙD!¸C&xyH|3·Z§KDáÌÖI{ÆloýbwO>xü"Æ<W~ù`u©úÕqT6¾®TnQDcº\ë½ìLß3:ij¢týÞÀȡƶÃj+.3^WeRðb8$6¯
uñ³P:®'öÛÏð·ßû)ïúƱåfÀ3o .-þÓRìíüýlOþEK«UÜÔx/MYÉ&Õün(e$sýê:Õ79rya<£Gcgb¶>D«J$»Ppè' ÀjNB2Fw ýäpa;ã¨ÂX¶]ÇhØyASLLmyÜp ËñxgÁø´½ÜNì§9ä} Y 9û;qHsqË!
+q8ô=N^=òú*3z®¿ÑýGÞb4î _TUí)WHôüÙô&£y M¥)½±ö2E6*bHH96)H¢uÞ{zÁ8
+VO#öä kðä90ïÆæÏ8®m§²¡ÁkqÚ¯
{â)WV¢¾Äµuج=ìy½§´
ôX¡&$W½Ã\8Z"r¸Àÿç½ãÏü9h½Ò)dÜRÄÄükå@D'ì³,øÎýP¶Ò~P¾ ¶WP%Ä^{*¾bb<¨Ø&Ä|.t¡ßÅ|\Yèú²d_&ȳ/ÉPøülÊÕ
+&Ããµ(¶²Q+¹º¹¬V2"ÍGl_+*÷M¾\ö9WÁ"³ZFôÁdëSÕ§(dħ6nK¥.µ°P¿D·Iq¼Ô2Ks%>x~}mMPU¤¬àª)k1 ÃÄ< ÂÝWiÈC÷±àŽ5ꢲc÷i½7uÛsÕ5àî
~9®ÐùÉ&ÙG9ÚØÄjÈßOXØ°$hU²ØgR¥2ä+;m.\ð£vÇ·«µRÝÒ]´bße¢ç*«2¸ÄÀië<}KɽWÚvXÌÊ´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Ë1fh7]>
+º¨[QXøÙÏþ¢êQyô®³\ÅxLâ¢YzB´Þ`XÔV\ÍrCVr5ûJ¦ÅUbÕ÷²;ö¯nsB5k/`AÏA*<âÕíâD/øÓ&ðP¡ä±¨áßH~k[[ýÀãv
m°!e)ÍsXi+¢Öá%קÃ`$J£Ìñ`$K£ÝÙDW¡z/K$PÈðñ*=ªèÚÈsª8Qh0QïÎÿbwÀYÛ ª¾!LñÊ©h NuMîâëúó wFV?a7¸0"³Ëñ~ÞbûÀÎçH=ØmFpÀá*®{m=ÇëìyÄyC¸2µvåK«q0
+Q"#àÞßNR
+Çë~Gr´È:44ÖSÉ6Dפ_4«<Øh®ãüÃT÷ÀýmåÖ?öQr¾7ûÈÚö(¶mÆ2&®»¿çFCv½öÚý8u-'9
Çe½Z§éMùÖË 4ÿº°Ï*àòuà½åú8Kà¶ÏÆÁ[!¥ÏUJØ)Io½Ñ÷I¸2ÍéÚ»yÝ`3=
àFêì# ^¦Íߦï=¯YêÃI9?i
+^/ZFêYVæ³·ÛôI"\bgîæ o{ÿà)´¢x¥{ÎpÒ³ÝF)åIOêD)¨Å6È66)nQOì¿Ð'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Ò)7eð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ô2yXL6{À>)Áòßðùo´Ë´àFÎòýÁÿÞ×N:ô\ñ¼yÿ!ädRº²<qt~?yµpSDìPþ-ÁÐ=Ãzòß±ï ¬®
+MzÔÄ8¸>àÃ3á ~ßöG|I;â)¶@£/fgAÐëÒ6n£íáǤn»À 7Ö¡[ ½S>Ú¼õü£¾¾¾úõJD˦ªÁ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[~ßÄÛ²Æb5Aª¦ó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&ÀµØ]e1XÍèn)zqYøLì¥âJ¹llhâ;ÓMþ¶
+ö¸Y(!åØjDUÑ˼ÉE¾ðïr{"þuv¶½ûvÿàgs)?+ßZ%4`GÍ+ßÉÈê%Â9¢)®*βóOlVR]¬'{NOߣ¥AÙø;9éÕtc* ó-£é×Gg ×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öÚ"8Kgsëìôùùð>_ÉüÍ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Ì
-.¹òì³Û$Ì´Ó4L·°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¶ë<éÖÝF89ELFc°
-½õþÝa-(rõRôeC¸"@*ÿaÅ`Ë<M»¥¾(cÚÕª¸W¼«hÁâ5.Ç(2ÂÿúLa[ñwßÑk§Cª«ÂÖmâêjquíGFÞ³7+&Ç4q]
Smª¡tݲ>J-&ÎMlæUñ¼\t¶ºIѦÂÚÖ#Õ±³jKhÜ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éÈeI530@à2Jµ°8JUÑê&xÚxîÃûÄ&ÑYR¬¼ê«6úãàï¨
-ûjÍ#gÌ44Þ'g«k¸f¤ÆqÜY£ËîØ¡_3jJ±MbX§»«ÃÝnvNúó_^UèMÔç©å¹YË÷¢)ñ[/CfX±TêLà
-Ï500°QÜ6£ÁÎb¼Óï}äw¶ä$¿ä
-îKíå·ÞqÅÂë9X&y¢×ùCÀx=r,5}ÂA7{þÞÄÞüÕâÔá®Ïo¥6pÀ· äw7`|,Û&Æ)t\`~Sò²Mpæillù|ðö^æÃ4¢iA3ãV%êO ®hË·Ñu+@é¦?)cáׯ¸SJnÿÙLéj*§#-áâ38Fâû ÞiË<Nî%$N «XS°cW
-ÅÅÇ}P3ø2ëNÒ1¦
-ÊÍ: ÑU2å_
Ô£©z¦G([g|ä,ûù´ ê{:ËÔ¡ö¨ÊüEÜuÁËÇø
·1#h%+ŹμøÙÛ¦+t9¡Q Ö_~uÄThpq´ìJÞªãåÿm^°¿$xH&í¤¸rUx¹L==¼àXtÉpçSI'|'²ê^Ë [o"
-#ø?qÉþT*ëÝ |ºòa;8IÈ7xxyà7}né=[Àq½Ù3ªÀÏ,Þv-û¡Côñ^D>°qݤ«)
-ÛÚ¢ÑÕc1¯x,8$÷Ä6,SG7@=°yZËÕÁÌ>"|R&§5p6º+ m$<Ã]v§5t0
-DBÄÓGg÷Ø°Íõy9`®0®uðAeD)R½²s.É
ÄÔ±¬m]ÓÉÖR·ÇS *·.|»ÈÓ ;ozתäxL¨;H±z=]h£sTéc¨zþç¸ë¼;B1dHocmóºÖw3â·f©À¼ïS_Êç>ñÖÇÒ£®,Jº÷·©rð$I¤gxUorÃU'ó¦-\©ò{>¾|1ktHJoÑm;ÜÀУøÀ®KR%/./þu¡¨R¦|qÒT¨ÉÕúâÍÏåä¼úËhm3¹§ëµ®h(¹°üpñ·D[¨²X«4êrÛ ¾fT«E;,Ù¡ÚCuU¶Ñ
óu¾»½àls1Ë^?«ÚÌ«uRñíO ¼ñ¼ôø¼,
-ÿÈÜß?2çÔõ2\Íå~½üBV{WÓøLìÿsôé·ðÎçC¸6ð§jä}ø4Dæª9Y>y¹Óæl!yúR9°£m
h{P 1«ýÕÇÅqë×~ßõÎdêÂ5!ðõofÈ3ß`#´AÀóð`n*]Çâo=²ÎO¥+?'öЦ¢ÙóO@Êd¥¼"úßÉJs[kæ¨>]¡\p-Ï$ºÏÎàÐ?¯sGæt8
-<®ÏÇ»ÇA`¸õ»©çaKa/7$ÁoBÔ¦yùgcõûVûQçÐ@ÖyRÇп{=tÔ}seAôRhGòqÂfEª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ÝaUìå W¾L±ðí+ΣÖ/¿Ê]¬· ·oø^+sãû³87%EfzµôDÇÅÆ]¶ Äí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ӾЬÚhoì(
-?|¤¤ûld;£Ò.ÓÔd×Y¦9{ÈãûÑõªÊ\vM(¢í¿yeÀe̬Ñþ»ú.ë¹<.Òà$ºc1;×7¬V».i9zà#UöY Ô0U=,ÏîPJ=c="[¦5òÇPTþǹ\0ímcVWë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!ì"+üHO±Ê»má[O´
ötJ*fרB¶ë±PPmÛÝ Tf½xÛ¤Ò¼MúRhˤÐÓ;¤/yDq׶EiÕÙåÆþÇûy
-öqMÞÏ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?¤iN¿2QodÕ^©ËÖÁoþ¶cofº@Ë·;¶Àôù®²ãÓ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¾»½¥cLaúÐ ì)÷É>ËÍdªkº)Sgt¼ËOBLÀGøéïñÕ?Bá|"I ,Ñ2Iöáq¥Lr¢Í)ñdfz%¥áOé-ÀhiU5ãÛ¹m±&.Õ ï¿i§ïýöWB+8ÑNÛñ åÌøk¤H~Û·¶6áVclQZ("Ô¼`趨*ã'lþSWÿ9gìÐö"Ê/ø
æÜÞ3u4ScMQfB®Û£ÔU¦#óð$ÈuZ£`V äÒ³Ïv0ÓnÓ 2q»
lËd¥Ç;Ë÷y¼Ð-Ë#¾ÞÜÈ®é:xÖtrÇñ¬u D.ÕøN¢.ðY§U÷ôA"}ÃuJÓø3oº(!ÊiëÖ´9åøÃ4UäEüÞ~¾\xdsµâí<vüjS=¨MäGvJFâ³ãá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«ùZ89ELFc°
+ozïý+a-(rõBôeC¸$@*ÿiÅ`Ã<M§¥¾]´«UñX¯<-yW"ÑÅk\
+Qdÿô¶:ãﮣ;Õ
+4N
+TW
ÛÄÕÕâê>ß2&+¼coVM-iâyt9¶©ÒuËú(µX88Kp71°WÅór=2´ÕM6ÕÖ¶ ¬¨Ý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îÍ:Xh6
§Ç
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¯É^%YòM %FÜKG.kLâ¨Ê¨À(ÔÂì*UE«àiã½÷wM¢»¤XyÝUmþö[ÆÁ_QvÕGÎih¼OÎW× qM?H1#"BÔÆ]üIÀnÙ¡_¨®êñ^£7.ïPѪm_y»H
=ÞyªàO|&ÒßÉæþΨf÷ñ²Svß ÐÆ¿¤¯,ÃÇgÝÛ©vÀpðüëÖ3Th¢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ùÁØ´[Á!ÑÃDw&®|l,&qFX[~±Ù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£@ODÒ!@<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`ù#{£ª"É[P5TZ±ÎZx÷
+Ã]JÛFî
+h,Êða'H[ßfÜÒ߯w×EmLæÙâ¶ø÷G6½õÌtz^V;91÷·'æ/ÃÕTàË|ÿ!dåªÿͧÏÿ«¥O¼w >À½ÿªFÞ¸S@è\5GÊGï3uÚ-$_¾Ri[¡7êTB,E|ýëâÀºu{Ãw;ºpMÈ|óÑyæ,L
Þxîà ö¦ÒuÌì
uÞ®üDØAcK¿ò2ö'+Mm£úi>åoy&Ð÷x~Æ<Ødù:Wyd^ÓÀàûüz¡ç¹àîø]Ï
]ÔÁó{Õ±'ñ$ÒôÈPÖRÕÐ4la±t}Ñj%Á'õÞôý»7}GÝg-Ë¡BÖR*V
+°aá¥0åbIU4¡CW`öb°NßÚ&u£×^º[ÕEùüp[Z%L®òào·K>ѪùÙ*]´MsúØ3ãêÂ÷ë¾˻
+½";`D§Éäò¹ *»B0º©lv¢¶Ýu¶é")KZ¢r#çgé½ ¸¤ ¯âI6î´äö9w¨¥Ì)çp
+ö®CùAòÙ®--^-|ÂH_^'}K¤E¨KvC"(g¸õïJSN¬«S³ØuBR<ïx)l!s UöV3[Ó¥W'ÑpÛÕ³@ÕIîn|~¬+Q oOtEºÈ_)JãÛx´Bô$È%6Dů.ãJH[Ö
Cï¹#Jpc¸´¸-uÒÂÈÍ'u|ÜåHÚhËØiïhKÎ7-CKgÒÏZæͱ¥ä=óÜÊ'L» qi+sziÌáÞ¢*Oe³iBµ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ìv3PÆ¿¨ùCש}ú},&ÚºfM
+»aØ'Yuôv¼µUie8 ?¤¨6IÕ&
+ÍÎCúöÏÙ¿N¡S/óú¼Þ¦/Vèµ:¯¹^Þ*ö\Ú¼?ò!ÚÃphç¼²øÄáu=^,}ýȰ§luÕÃeÊNs&LÛɪð'cÉGìRÌ~]%
pø±Ú$° "0é¡l)ùL
ÀßSzÈ_%ñ+¶¡4¸|:Æ?tI}ÌÛwRJÄ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
+k5}ð%Å|©²íÜ(©~þ+e
+0³F¿¾Æv]~\H©Ê%V¬np ÿ>zç2ó\Iä]5*yÍiURù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òỾªt4b¦*³7¬Æ3è+Ç;
&ë\®C×í»\ï|Þ»IwSî¦ÝÍ8t¡0q(cÂál8n¡¹¨]{ùþÔ}¤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!:VRÀt*30}UUw·d1´®¯¥Y¢`
(áº@Á[f®,;%o ÷4öfØ?Þ³¼W#¢oÄsVéÿ?f3+±¤càOu$áǤ=È8ÎyÄ9-e*§@ËS°^SDºÉbå´¬Z.jëÌ5
-_°ó%®Ø<G®i`æúÞlÎ&ÁÚ)éyøÛUØ`Yð® ¹bï÷Ê×MíX«30}#:vðeX~ØN¡5AwQ¹N²`ºëÃÔEi¡owéä°jÐËÏFÈ÷[ [ȶb/Y;D¹¥*òê+W¥*Ó¨¶5ã`¸¡Ï¸#ÌpûÚëñ+Ý«]>Z\Úð c3ò®cB{n},!È¿¹|_S)¾fnâëöï¹k¾|x_[îÅ×~~¾SÉ%Wµnù%|Ð&ªÍ¶A¤(¾Ùd7b÷g1OfÀnié¯,Îõ.âØÍQ
Mckö&{*-`Íùglºû2"ÍÍû²Õ©
-CEJ8ö©->ú#×_ø¾Íí>-äÞFîÔtí
-®"7sKÕiîâ¥è¹»=Áxµß7=iÿÐJ§¹¸çhyãà=côú|ðg¿¢þ
-Øx{Fúnèzâ@bmö¥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
-Îë=sZm¬îÝÙ>®*V4k
7Öħ&Ù%E¦\æ³O¯³¨!coiÐC]8ö:ã@rÒpuLÎwÌSV¦ÉSZ¨ «#£«¼Ï%H#iÇÄÞmÔà%¡_;«¨ HJ©NB@ ÞÆ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¿ØîÉ°Ù~àÞ¯ %íì¨Â¤6REoÖxQQ1äú@}×w}þ¿ð0¤®ÙÕóq´dÍþ«ÌÈÅ¢kX·äoSr}^¤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À?79ÝV #YÎÝhï ®?èÀ¿¥Ýç·îï1æw!ûÝop=x¾ÙÒs´Ø÷mbO°&dl·Nÿ+ðFp:ºÜÀ<*µP
-û¨Il7>fWÕ¡2Éä¿òÚ¼Û^JÇûÖÓ}TJ·Ot8vU©ýTJEøªS)MÕóËVI7ºa4²ã½W¹Å寮ºï*éQG/V±¸åÙ««%²çT¶FÝr&C3ñt&¯ÑwíVÙó³¾²ðVN}Eu¸UJM7JIîó¹ÿæ ÂþDDhd¤xe9×|#!ºßHȦ->àþ[ @ O¾(ûXýM£å;-»ÒÃQs=eÓ7ô¨äS÷°§"Þ÷!ÈŽþÒåN¸ëp½6´}ijî¬;uZ>Í_<'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%ÕYj\Au%V8+¯pS.ººp§-°'ª!âòµiåUVn4§X@É-WÞóa3.øeÀàãú/£j{"7Pº¹^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àyTËÈùè"U\yë DiV
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