[Rcpp-commits] r758 - papers/rjournal
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sun Feb 21 19:41:46 CET 2010
Author: edd
Date: 2010-02-21 19:41:46 +0100 (Sun, 21 Feb 2010)
New Revision: 758
Modified:
papers/rjournal/EddelbuettelFrancois.tex
Log:
some corrections and polish on pages 1 and 2
Modified: papers/rjournal/EddelbuettelFrancois.tex
===================================================================
--- papers/rjournal/EddelbuettelFrancois.tex 2010-02-21 18:36:26 UTC (rev 757)
+++ papers/rjournal/EddelbuettelFrancois.tex 2010-02-21 18:41:46 UTC (rev 758)
@@ -17,14 +17,14 @@
\section{Introduction}
-R is an extensible system. The 'Writing R Extensions' manual \citep{R:exts}
-describes in detail the ways to augment R with compiled code,
-focussing mostly on C code. The R API described in Writing R Extensions is
+R is an extensible system. The `Writing R Extensions' manual \citep{R:exts}
+describes in detail how to augment R with compiled code,
+focussing 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
representation of R objects.
%
In this article, we discuss the functionality of the \pkg{Rcpp}
-package, which we believe simplifies dramatically the usage of C++ code
+package, which simplifies the usage of C++ code
in R. Combining R and C++ is not a new idea, so we start with
a short review of other approaches and give some historical
background on the development of \pkg{Rcpp}.
@@ -32,10 +32,10 @@
The current version of \pkg{Rcpp} combines two distinct
APIs. The first---which we call `classic \pkg{Rcpp} API'---exists since
the first version of \pkg{Rcpp}. The second API, enclosed in the
-\code{Rcpp} C++ namespace is a newer codebase which we started to develop
+\code{Rcpp} C++ namespace, is a newer codebase which we started to develop
more recently. This article
highlights some of the key design and implementation choices:
-lightweight encapsulation of R object in C++ classes, automatic
+lightweight encapsulation of R objects in C++ classes, automatic
garbage collection strategy, code inlining, data interchange between
R and C++ and error handling.
@@ -82,7 +82,7 @@
The packages \pkg{rcppbind} \citep{liang08:rcppbind}, \pkg{RAbstraction}
\citep{armstrong09:RAbstraction} and \pkg{RObjects}
\citep{armstrong09:RObjects} are all implemented using C++ templates.
-However, neither has matured to the point of a CRAN release and it
+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.
%
CXXR \citep{runnalls09:cxxr} comes to this topic from the other side:
@@ -165,7 +165,7 @@
type is used to create a vector of doubles from the template type.
Fourth, the usefulness of these classes can be seen when we query the
vectors directly for their size---using the \code{size()} member function---in
-order to reserved a new result type of appropriate length whereas use based
+order to reserve a new result type of appropriate length whereas use based
on C arrays would have required additional parameters for the length of
vectors $a$ and $b$, leaving open the possibility of mismatches between the
actual length and the length reported by the programmer.
@@ -191,8 +191,8 @@
of the internal R API, as well as current C++ design approaches.
This redesign of \code{Rcpp} was also motivated by the needs of other
projects such as \code{RInside} \citep{cran:rinside} for easy embedding
-of R in a C++ application and \code{RProtoBuf} \citep{cran:rprotobuf}
-that interfaces with the protocol buffer library.
+of R in a C++ applications and \code{RProtoBuf} \citep{cran:rprotobuf}
+that interfaces with the protocol buffers library.
\subsection{Rcpp Class hierarchy}
More information about the Rcpp-commits
mailing list