[Rcpp-commits] r2246 - papers/rjournal

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Wed Sep 29 18:39:21 CEST 2010


Author: edd
Date: 2010-09-29 18:39:20 +0200 (Wed, 29 Sep 2010)
New Revision: 2246

Modified:
   papers/rjournal/EddelbuettelFrancois.bib
   papers/rjournal/EddelbuettelFrancois.tex
Log:
The grand bibtex / citation clean-up Vol 1: paper


Modified: papers/rjournal/EddelbuettelFrancois.bib
===================================================================
--- papers/rjournal/EddelbuettelFrancois.bib	2010-09-29 14:57:01 UTC (rev 2245)
+++ papers/rjournal/EddelbuettelFrancois.bib	2010-09-29 16:39:20 UTC (rev 2246)
@@ -1,279 +1,279 @@
- at String{CRAN = "http://cran.r-project.org/" }
+ at String{CRAN = "http://CRAN.R-Project.org/" }
 @String{manuals = CRAN # "doc/manuals/" }
 @String{RCoreTeam = "{R Development Core Team}" }
 @String{RFoundation = "R Foundation for Statistical Computing" }
+ at String{R-Forge = "http://R-Forge.R-Project.org/" }
 
- at Book{Abrahams+Gurtovoy:2004,
-  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}
-}
-
- at TechReport{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"
-}
-
- at inproceedings{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},
-  isbn =		 {3-540-65387-2},
-  year =		 1998,
-  pages =		 {223--230},
-  publisher =	 {Springer-Verlag},
-  address =		 {London, UK},
-}
-
- at manual{Boost:Python,
-  author =		 { David Abrahams and Ralf W. Grosse-Kunstleve },
+ at 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"
+  title =	 "Building Hybrid Systems with Boost.Python",
+  year =	 2003,
+  url =		 "http://www.boostpro.com/writing/bpl.pdf"
 }
 
- at manual{R:exts,
-  author =		 RCoreTeam,
-  organization = RFoundation,
-  address =		 {Vienna, Austria},
-  year =		 2010,
-  title =		 "Writing R extensions",
-  url =			 manuals # "R-exts.html"
-}
-
- at manual{R:ints,
-  author =		 RCoreTeam,
-  organization = RFoundation,
-  address =		 {Vienna, Austria},
-  year =		 2010,
-  title =		 "R internals",
-  url =			 manuals # "R-ints.html"
-}
-
- at Book{Vandevoorde+Josuttis:2003,
-  author =		 {David Vandevoorde and Nicolai M. Josuttis},
-  title =		 {{C++} {T}emplates: The Complete Guide},
+ at 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 =		 2003,
-  address =		 {Boston}
+  year =	 2004,
+  address =	 {Boston}
 }
 
- at Manual{armstrong09:RAbstraction,
-  title =		 {{RAbstraction}: {C++} abstraction for {R} objects},
-  author =		 {Whit Armstrong},
-  year =		 2009,
-  note =		 {Code repository last updated July 22, 2009.},
-  url =			 {http://github.com/armstrtw/rabstraction}
+ at Manual{Armstrong:2009:RAbstraction,
+  title =	 {{RAbstraction}: {C++} abstraction for {R} objects},
+  author =	 {Whit Armstrong},
+  year =	 2009,
+  note =	 {Code repository last updated July 22, 2009.},
+  url =		 {http://github.com/armstrtw/rabstraction}
 }
 
- at Manual{armstrong09:RObjects,
-  title =		 {{RObjects}: {C++} wrapper for R objects (a better
+ at 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 November 28, 2009.},
-  url =			 {http://github.com/armstrtw/RObjects}
+  author =	 {Whit Armstrong},
+  year =	 2009,
+  note =	 {Code repository last updated November 28, 2009.},
+  url =		 {http://github.com/armstrtw/RObjects}
 }
 
- at InProceedings{batesdebroy01:cppclasses,
-  author =		 {Douglas M. Bates and Saikat DebRoy},
-  title =		 {{C++} Classes for {R} Objects},
+ at 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 (DSC 2001)},
-  year =		 2001,
-  editor =		 {Kurt Hornik and Friedrich Leisch},
-  address =		 {TU Vienna, Austria}
+  year =	 2001,
+  editor =	 {Kurt Hornik and Friedrich Leisch},
+  address =	 {TU Vienna, Austria}
 }
 
- at Manual{cran:Rserve,
-  title =		 {Rserve: Binary R server},
-  author =		 {Simon Urbanek},
-  year =		 2010,
-  note =		 {R package version 0.6-2},
-  url =			 {http://www.rforge.net/Rserve/},
+ at Manual{CRAN:RInside,
+  title =	 {RInside: C++ classes to embed R in C++ applications},
+  author =	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  year =	 2010,
+  note =	 {R package version 0.2.3},
+  url =		 CRAN # "package=RInside"
 }
 
- at 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 =			 {http://CRAN.R-project.org/package=cxxPack},
+ at Manual{CRAN:RProtoBuf,
+  title =	 {RProtoBuf: R Interface to the Protocol Buffers API},
+  author =	 {Romain Fran\c{c}ois and Dirk Eddelbuettel},
+  year =	 2010,
+  note =	 {R package version 0.2.0},
+  url =		 CRAN # "/package=RProtoBuf"
 }
 
- at 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 =		 2010,
-  note =		 {R package version 0.3.6},
-  url =			 {http://CRAN.R-project.org/package=inline},
+ at Manual{CRAN:RQuantLib,
+  title =	 {RQuantLib: {R} interface to the {QuantLib} library},
+  author =	 {Dirk Eddelbuettel and Khanh Nguyen},
+  year =	 2010,
+  note =	 {R package version 0.3.4},
+  url =		 CRAN # "/package=RQuantLib"
 }
 
- at Manual{cran:rcpparmadillo,
-  title =		 {RcppArmadillo: Rcpp integration for Armadillo
+ at Manual{CRAN:RcppArmadillo,
+  title =	 {RcppArmadillo: Rcpp integration for Armadillo
                   templated linear algebra library},
-  author =		 {Romain Fran\c{c}ois and Dirk Eddelbuettel and
+  author =	 {Romain Fran\c{c}ois and Dirk Eddelbuettel and
                   Douglas Bates},
-  year =		 2010,
-  note =		 {R package version 0.2.7},
-  url =			 {http://CRAN.R-project.org/package=RcppArmadillo}
+  year =	 2010,
+  note =	 {R package version 0.2.7},
+  url =		 CRAN # "/package=RcppArmadillo"
 }
 
- at Manual{cran:rcppexamples,
-  title =		 {RcppExamples: Examples using {Rcpp} to interface {R}
+ at Manual{CRAN:RcppExamples,
+  title =	 {RcppExamples: Examples using {Rcpp} to interface {R}
                   and {C++}},
-  author =		 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
-  year =		 2010,
-  note =		 {R package version 0.1.1},
-  url =			 {http://CRAN.R-project.org/package=RcppExamples}
+  author =	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  year =	 2010,
+  note =	 {R package version 0.1.1},
+  url =		 CRAN # "/package=RcppExamples"
 }
 
- at Manual{cran:rinside,
-  title =		 {RInside: C++ classes to embed R in C++ applications},
-  author =		 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
-  year =		 2010,
-  note =		 {R package version 0.2.3},
-  url =			 {http://CRAN.R-project.org/package=RInside}
+ at Manual{CRAN:Rserve,
+  title =	 {Rserve: Binary R server},
+  author =	 {Simon Urbanek},
+  year =	 2010,
+  note =	 {R package version 0.6-2},
+  url =		 CRAN # "/package=Rserve"
 }
 
- at Manual{cran:rprotobuf,
-  title =		 {RProtoBuf: R Interface to the Protocol Buffers API},
-  author =		 {Romain Fran\c{c}ois and Dirk Eddelbuettel},
-  year =		 2010,
-  note =		 {R package version 0.2.0},
-  url =			 {http://CRAN.R-project.org/package=RProtoBuf}
+ at 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"
 }
 
- at Manual{cran:rquantlib,
-  title =		 {RQuantLib: {R} interface to the {QuantLib} library},
-  author =		 {Dirk Eddelbuettel and Khanh Nguyen},
-  year =		 2010,
-  note =		 {R package version 0.3.4},
-  url =			 {http://CRAN.R-project.org/package=RQuantLib}
+ at 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 =	 2010,
+  note =	 {R package version 0.3.6},
+  url =		 CRAN # "/package=inline"
 }
 
- at Unpublished{javagailemanly07:r_cpp,
-  author =		 {James J. Java and Daniel P. Gaile and Kenneth
+ at 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}
+  title =	 {{R/Cpp}: Interface Classes to Simplify Using {R}
                   Objects in {C++} Extensions},
-  note =		 {Unpublished manuscript, University at Buffalo},
+  note =	 {Unpublished manuscript, University at Buffalo},
   url =
                   {http://sphhp.buffalo.edu/biostat/research/techreports/UB_Biostatistics_TR0702.pdf},
-  month =		 {July},
-  year =		 2007
+  month =	 {July},
+  year =	 2007
 }
 
- at Manual{liang08:rcppbind,
-  title =		 {rcppbind: {A} template library for R/C++ developers},
-  author =		 {Gang Liang},
-  year =		 2008,
-  note =		 {R package version 1.0},
-  url =			 {http://r-forge.r-project.org/projects/rcppbind/}
+ at 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"
 }
 
- at book{meyers:effectivecplusplus,
-  author =		 {Scott Meyers},
-  title =		 {Effective C++: 55 Specific Ways to Improve Your
+ at book{Meyers:1995:MoreEffectiveC++,
+  author =	 {Scott Meyers},
+  title =	 {More Effective C++: 35 New Ways to Improve Your
                   Programs and Designs},
-  year =		 2005,
-  isbn =		 {978-0321334879},
-  publisher =	 {Addison-Wesley Professional},
-  edition =		 {Third},
+  year =	 1995,
+  isbn =	 {020163371X},
+  publisher =	 {Addison-Wesley Longman Publishing Co., Inc.},
+  address =	 {Boston, MA, USA},
 }
 
- at book{meyers:effectivestl,
-  author =		 {Scott Meyers},
-  title =		 {Effective STL: 50 specific ways to improve your use
+ at book{Meyers:2001:EffectiveSTL,
+  author =	 {Scott Meyers},
+  title =	 {Effective STL: 50 specific ways to improve your use
                   of the standard template library},
-  year =		 2001,
-  isbn =		 {0-201-74962-9},
+  year =	 2001,
+  isbn =	 {0-201-74962-9},
   publisher =	 {Addison-Wesley Longman Ltd.},
-  address =		 {Essex, UK},
+  address =	 {Essex, UK},
 }
 
- at book{meyers:moreeffectivecplusplus,
-  author =		 {Scott Meyers},
-  title =		 {More Effective C++: 35 New Ways to Improve Your
+ at book{Meyers:2005:EffectiveC++,
+  author =	 {Scott Meyers},
+  title =	 {Effective C++: 55 Specific Ways to Improve Your
                   Programs and Designs},
-  year =		 1995,
-  isbn =		 {020163371X},
-  publisher =	 {Addison-Wesley Longman Publishing Co., Inc.},
-  address =		 {Boston, MA, USA},
+  year =	 2005,
+  isbn =	 {978-0321334879},
+  publisher =	 {Addison-Wesley Professional},
+  edition =	 {Third},
 }
 
- at Book{plauger_et_al:stlbook,
-  author =		 {P.J. Plauger and Alexander Stepanov and Meng Lee and
+ at 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},
+  title =	 {The {C++} Standard Template Library},
   publisher =	 {Prentice Hall PTR},
-  year =		 2000,
-  isbn =		 {978-0134376332},
+  year =	 2000,
+  isbn =	 {978-0134376332},
 }
 
- at InProceedings{runnalls09:cxxr,
-  author =		 {Andrew Runnalls},
-  title =		 {Aspects of {CXXR} internals},
+ at manual{R:Extensions,
+  author =	 RCoreTeam,
+  organization = RFoundation,
+  address =	 {Vienna, Austria},
+  year =	 2010,
+  title =	 "Writing R extensions",
+  url =		 manuals # "R-exts.html"
+}
+
+ at manual{R:Internals,
+  author =	 RCoreTeam,
+  organization = RFoundation,
+  address =	 {Vienna, Austria},
+  year =	 2010,
+  title =	 "R internals",
+  url =		 manuals # "R-ints.html"
+}
+
+ at InProceedings{Runnalls:2009:CXXR,
+  author =	 {Andrew Runnalls},
+  title =	 {Aspects of {CXXR} internals},
   booktitle =	 {Directions in Statistical Computing},
-  address =		 {University of Copenhagen, Denmark},
-  year =		 2009
+  address =	 {University of Copenhagen, Denmark},
+  year =	 2009
 }
 
- at Manual{samperi09:rcpptemplate,
-  title =		 {RcppTemplate: Rcpp {R/C++} Object Mapping Library
+ at 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 =
-                  {http://CRAN.R-project.org/src/contrib/Archive/RcppTemplate}
+  author =	 {Dominick Samperi},
+  year =	 2009,
+  note =	 {(Archived) R package version 6.1},
+  url =          CRAN # "/src/contrib/Archive/RcppTemplate"
 }
 
- at Article{templelang09:modestproposal,
-  author =		 {Duncan {Temple Lang}},
-  title =		 {A modest proposal: an approach to making the
+ at 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"
+}
+
+ at 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}
+  journal =	 {Computational Statistics},
+  year =	 2009,
+  volume =	 24,
+  number =	 2,
+  pages =	 {271-281},
+  month =	 {May}
 }
 
- at Article{templelang09:rgcctranslationunit,
-  author =		 {Duncan {Temple Lang}},
-  title =		 {Working with meta-data from {C/C++} code in {R}: the
+ at 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}
+  journal =	 {Computational Statistics},
+  year =	 2009,
+  volume =	 24,
+  number =	 2,
+  pages =	 {283-293},
+  month =	 {May}
 }
 
- at InProceedings{urbanek2003:rserve,
-  author =		 {Simon Urbanek},
-  title =		 {{Rserve}: A Fast Way to Provide {R} Functionality to
+ at 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 (DSC 2003)},
-  year =		 2003,
-  editor =		 {Kurt Hornik and Friedrich Leisch and Achim Zeileis},
-  address =		 {TU Vienna, Austria}
+  year =	 2003,
+  editor =	 {Kurt Hornik and Friedrich Leisch and Achim Zeileis},
+  address =	 {TU Vienna, Austria}
 }
+
+ at 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}
+}
+
+ at 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},
+  isbn =	 {3-540-65387-2},
+  year =	 1998,
+  pages =	 {223--230},
+  publisher =	 {Springer-Verlag},
+  address =	 {London, UK},
+}

Modified: papers/rjournal/EddelbuettelFrancois.tex
===================================================================
--- papers/rjournal/EddelbuettelFrancois.tex	2010-09-29 14:57:01 UTC (rev 2245)
+++ papers/rjournal/EddelbuettelFrancois.tex	2010-09-29 16:39:20 UTC (rev 2246)
@@ -17,7 +17,7 @@
 
 \section{Introduction} 
 
-R is an extensible system. The `Writing R Extensions' manual \citep{R:exts}
+R is an extensible system. The `Writing R Extensions' manual \citep{R:Extensions}
 describes in detail how to augment R with compiled code,
 focusing mostly on the C language. The R API described in `Writing R Extensions' is
 based on a set of functions and macros operating on \code{SEXP}, the internal
@@ -47,7 +47,7 @@
 \subsection{Historical Context}
 
 \pkg{Rcpp} first appeared in 2005 as a contribution (by Samperi) to the
-\pkg{RQuantLib} package \citep{cran:rquantlib} before becoming a CRAN package
+\pkg{RQuantLib} package \citep{CRAN:RQuantLib} before becoming a CRAN package
 in early 2006. Several releases (all by Samperi) followed in quick succession
 under the name \pkg{Rcpp}. The package was then renamed to
 \pkg{RcppTemplate}; several more releases followed during 2006 under the new
@@ -61,7 +61,7 @@
 interface.  This constitutes the `classic \pkg{Rcpp}' interface 
 (not described in this article) which will be maintained for the foreseeable future.
 
-Yet C++ coding standards continued to evolve \citep{meyers:effectivecplusplus}.
+Yet C++ coding standards continued to evolve \citep{Meyers:2005:EffectiveC++}.
 In 2009, Eddelbuettel and Fran\c{c}ois started a significant redesign of the
 code base which added numerous new features.  Several of these are described
 below in the section on the \pkg{Rcpp} API interface, as well as in the
@@ -72,32 +72,32 @@
 \subsection{Comparison}
 
 Integration of C++ and R has been addressed by several authors; the earliest
-published reference is probably \cite{batesdebroy01:cppclasses}.
-An unpublished paper by \cite{javagailemanly07:r_cpp} expresses several ideas
+published reference is probably \cite{Bates+DebRoy:2001:C++Classes}.
+An unpublished paper by \cite{Java+Gaile+Manly:2007:RCpp} expresses several ideas
 that are close to some of our approaches, though not yet fully fleshed out.
 %
-The \pkg{Rserve} package \citep{urbanek2003:rserve,cran:Rserve} was another early approach,
+The \pkg{Rserve} package \citep{Urbanek:2003:Rserve,CRAN:Rserve} was another early approach,
 going back to 2002. On the server side, \pkg{Rserve} translates R data
 structures into a binary serialization format and uses TCP/IP for
 transfer. On the client side, objects are reconstructed as instances of Java
 or C++ classes that emulate the structure of R objects. 
 
-The packages \pkg{rcppbind} \citep{liang08:rcppbind}, \pkg{RAbstraction}
-\citep{armstrong09:RAbstraction} and \pkg{RObjects}
-\citep{armstrong09:RObjects} are all implemented using C++ templates.
+The packages \pkg{rcppbind} \citep{Liang:2008:rcppbind}, \pkg{RAbstraction}
+\citep{Armstrong:2009:RAbstraction} and \pkg{RObjects}
+\citep{Armstrong:2009:RObjects} are all implemented using C++ templates.
 However, neither has matured to the point of a CRAN release and it is
 unclear how much usage these packages are seeing beyond their own authors.
 
-\pkg{CXXR} \citep{runnalls09:cxxr} comes to this topic from the other side: 
+\pkg{CXXR} \citep{Runnalls:2009:CXXR} comes to this topic from the other side: 
 its aim is to completely refactor R on a stronger C++ foundation. 
 \pkg{CXXR} is therefore concerned with all aspects of the R interpreter,
 REPL, threading---and object interchange between R and C++ is but one
-part. A similar approach is discussed by \cite{templelang09:modestproposal}
+part. A similar approach is discussed by \cite{TempleLang:2009:ModestProposal}
 who suggests making low-level internals extensible by package developers in
 order to facilitate extending \R.
 %
 Another slightly different angle is offered by
-\cite{templelang09:rgcctranslationunit} who uses compiler output for
+\cite{TempleLang:2009:RGCCTranslationUnit} who uses compiler output for
 references on the code in order to add bindings and wrappers.
 
 \subsection{Rcpp Use Cases} 
@@ -131,8 +131,8 @@
 years of \pkg{Rcpp} deployment, needs from other projects, knowledge 
 of the internal R API, as well as current C++ design approaches. 
 The new features in \pkg{Rcpp} were also motivated by the needs of other 
-projects such as \pkg{RInside}  \citep{cran:rinside} for easy embedding 
-of R in C++ applications and \pkg{RProtoBuf} \citep{cran:rprotobuf} 
+projects such as \pkg{RInside}  \citep{CRAN:RInside} for easy embedding 
+of R in C++ applications and \pkg{RProtoBuf} \citep{CRAN:RProtoBuf} 
 that interfaces with the Protocol Buffers library. 
 
 \subsection{A First Example}
@@ -167,7 +167,7 @@
 \verb|operator[]| to extract and set individual elements of the vector. 
 Fifth, the computation itself is
 straightforward embedded looping just as in the original examples in the
-'Writing R Extensions' manual \citep{R:exts}.  Sixth, the return conversion
+'Writing R Extensions' manual \citep{R:Extensions}.  Sixth, the return conversion
 from the \code{NumericVector} to the \code{SEXP} type is also automatic.
 
 We argue that this \pkg{Rcpp}-based usage is much easier to read, write and debug than the
@@ -218,7 +218,7 @@
 
 Internally, an R object must have one type amongst the set of 
 predefined types, commonly referred to as SEXP types. The `R Internals'
-manual \citep{R:ints} documents these various types. 
+manual \citep{R:Internals} documents these various types. 
 \pkg{Rcpp} associates a dedicated C++ class for most SEXP types, and
 therefore only exposes functionality that is relevant to the R object
 that it encapsulates.
@@ -236,7 +236,7 @@
 \subsection{Numeric vectors}
 
 The following code snippet is taken from Writing R extensions
-\citep{R:exts}. It creates a \code{numeric} vector of two elements 
+\citep{R:Extensions}. It creates a \code{numeric} vector of two elements 
 and assigns some values to it. 
 
 \begin{example}
@@ -325,7 +325,7 @@
 The C++ to R conversion is performed by the \code{Rcpp::wrap} templated
 function. It uses advanced template metaprogramming techniques\footnote{A
   discussion of template metaprogramming
-  \citep{Vandevoorde+Josuttis:2003,Abrahams+Gurtovoy:2004} is beyond the
+  \citep{Vandevoorde+Josuttis:2003:Templates,Abrahams+Gurtovoy:2004:TemplateMetaprogramming} is beyond the
   scope of this article.}  to convert a wide and extensible set of types and
 classes to the most appropriate type of R object. The signature of the
 \code{wrap} template is:
@@ -357,7 +357,7 @@
 modern techniques of template meta programming and class traits. The 
 \code{Rcpp-extending} vignette discusses in depth how to extend \code{wrap}
 to third-party types. The \pkg{RcppArmadillo} package
-\citep*{cran:rcpparmadillo} features several examples.
+\citep*{CRAN:RcppArmadillo} features several examples.
 
 The following code snippet illustrates that the design allows
 composition:
@@ -400,7 +400,7 @@
 be fully or partially specialized to manage conversion of R data 
 structures to third-party types as can be seen for example in the
 \pkg{RcppArmadillo} package which eases transfer of R matrices and vectors to
-the optimised data structures in the Armadillo linear algebra library \citep{Armadillo}.
+the optimised data structures in the Armadillo linear algebra library \citep{Sanderson:2010:Armadillo}.
 
 
 \subsection{Implicit use of converters}
@@ -436,7 +436,7 @@
 In the first part of the example, the code extracts a 
 \code{std::vector<double>} from the global environment. In order to achieve this, 
 the \code{operator[]}  of \code{Environment} uses the proxy pattern 
-\citep{meyers:moreeffectivecplusplus}
+\citep{Meyers:1995:MoreEffectiveC++}
 to distinguish between left hand side (LHS) and right hand side (RHS) use. 
 %
 The output of the operator is an instance of the nested class
@@ -537,7 +537,7 @@
 Extending R with compiled code also needs to address how to reliably compile,
 link and load the code.  While using a package is preferable in the long run,
 it may be too involved for quick explorations. An alternative is
-provided by the \pkg{inline} package \citep{cran:inline} which compiles,
+provided by the \pkg{inline} package \citep{CRAN:inline} which compiles,
 links and loads a C, C++ or Fortran function---directly from the R prompt
 using simple functions \code{cfunction} and \code{cxxfunction}.  The latter provides an extension which
 works particularly well with \pkg{Rcpp} via so-called `plugins' which provide
@@ -595,7 +595,7 @@
 
 The C++ Standard Template Library (STL) offers a variety of generic
 algorithms designed to be used on ranges of elements
-\citep{plauger_et_al:stlbook}. A range is any sequence of objects that can be
+\citep{Plauger+Et+Al:2000:STL}. A range is any sequence of objects that can be
 accessed through iterators or pointers.  All \pkg{Rcpp} classes from the new
 API representing vectors (including lists) can produce ranges through their
 member functions \code{begin()} and \code{end()}, effectively supporting
@@ -723,7 +723,7 @@
 \section{Performance comparison}
 
 In this section, we present several different ways to leverage \pkg{Rcpp} to 
-rewrite the convolution example taken from \cite{R:exts}. 
+rewrite the convolution example taken from \cite{R:Extensions}. 
 
 As part of the redesign of \pkg{Rcpp}, data copy is kept to the
 absolute minimum: the \code{RObject} class and all its derived
@@ -734,7 +734,7 @@
 The implementation of the \code{operator[]} is designed to be as 
 efficient as possible, using both inlining and caching, 
 but even this implementation is still less efficient than the 
-reference C implementation described in \cite{R:exts}. 
+reference C implementation described in \cite{R:Extensions}. 
 
 \pkg{Rcpp} follows design principles from the STL, and classes such 
 as \code{NumericVector} expose iterators that can be used for 
@@ -855,9 +855,9 @@
 sugar at the C++ level, including optimized binary operators and many 
 R functions such as \code{ifelse}, \code{sapply}, \code{any}, ... 
 The main technique used in Rcpp sugar is
-expression templates pioneered by the Blitz++ library \citep{Blitz}
+expression templates pioneered by the Blitz++ library \citep{Veldhuizen:1998:Blitz}
 and since adopted 
-by projects such as Armadillo \citep{Armadillo}. 
+by projects such as Armadillo \citep{Sanderson:2010:Armadillo}. 
 Access to most of the d/p/q/r-variants of the statistical distribution
 functions has also been added, enabling the use of expressions such as 
 \code{dnorm(X, m, s)} for a numeric vector $X$ and scalars $m$ and
@@ -869,7 +869,7 @@
 at the R level. This offers access to C++ code from R using even less
 interface code than by writing accessor function. Modules are inspired by
 the \code{Boost.Python} library 
-\citep{Boost:Python} that provides similar functionality for Python. C++ Classes
+\citep{Abrahams+Grosse-Kunstleve:2003:Boost.Python} that provides similar functionality for Python. C++ Classes
 exposed by Rcpp modules are shadowed by reference classes that have been 
 introduced in R 2.12.0. 
 



More information about the Rcpp-commits mailing list