Rcpp 0.8.4
July 10, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
pre{
font-size: small ;
border : 1px solid gray ;
}Dirk uploaded Rcpp 0.8.4 to CRAN yesterday.
This release quickly follows the release of Rcpp 0.8.3, because there was some building problems (particularly on the ppc arch on OSX).Rcpp sugarAlready available in Rcpp 0.8.3, the new sugar feature was extended in 0.8.4 to cover more functions, and we have now started to adapt sugar for matrices with functions such as outer, row, diag, etc ...Here is an example of using the sugar version of outerNumericVector xx(x) ;
NumericVector yy(y);
NumericMatrix m = outer( xx, yy, std::plus<double>() ) ;
return m ;This mimics ...Rmetrics slides
June 30, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
I presented Rcpp at the Rmetrics conference earlier today, this was a really good opportunity to look back at all the work Dirk and I have been commiting into Rcpp.I've uploaded my slides here (pdf) and on slideshare :Rcpp: Seemless R and C++View more presentations from romainfrancois.and some pictures on flickr:Rcpp 0.8.1
June 8, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
We released Rcpp 0.8.0 almost a month ago. It finalized our efforts in designing a better, faster and more natural API than any version of Rcpp ever before. The journey from Rcpp 0.7.0 toinline 0.3.5
June 2, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
The inline package is an amazing, yet simple, package for R. It allows to dynamically (within the R session) define R functions and S4 methods with inlined C/C++/Fortran code.Together with RUnit, inline powers the entire unit test suite of Rcpp.As agreed with Oleg Sklyar, who maintains inline, we made a few additions to inline to accomodate the needs of the Rcpp family of packages.cxxfunctionThe main addition is cxxfunction which is very similar to cfunction, except that it only focuses on C++ code using the .Call calling convention. cxxfunction uses a plugin system allowing other ...RcppArmadillo 0.2.1
May 19, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
ArmadilloArmadillo is a C++ linear algebra library aiming towards a good balance
between speed and ease of use. Integer, floating point and complex numbers
are supported, as well as a subset of trigonometric and statistics
functions. Various matrix decompositions are provided through optional
integration with LAPACK and ATLAS libraries.A delayed evaluation approach is employed (during compile time) to combine
several operations into one and reduce (or eliminate) the need for
temporaries. This is accomplished through recursive templates and template
meta-programming.This library is useful if C++ has been decided as the language of choice
(due to speed and/or integration capabilities), rather than another ...Rcpp 0.8.0
May 12, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
SummaryVersion 0.8.0 of the Rcpp package was released to CRAN today. This release marks another milestone in the ongoing redesign of the package, and
underlying C++ library.OverviewRcpp is an R package and C++ library that facilitates integration of C++
code in R packages.The package features a set of C++ classes (Rcpp::IntegerVector,
Rcpp::Function, Rcpp::Environment, ...) that makes it easier to manipulate R
objects of matching types (integer vectors, functions, environments, etc
...).Rcpp takes advantage of C++ language features such as the explicit
constructor/destructor lifecycle of objects to manage garbage collection
automatically and transparently. We believe this is a major improvement over
PROTECT/UNPROTECT. When an ...Rcpp 0.7.7
February 14, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
pre{
border: 1px solid black ;
font-size: small ;
}A good 2 days after 0.7.6 was released, here comes Rcpp 0.7.7. The reason for this release is that a subtle bug installed itself and we did not catch it in timeThe new version also includes two new class templates : unary_call and binary_call that help integration of calls (e.g. Rcpp::Language objects) with STL algorithms. For example here is how we might use
unary_callThis emulates the code> lapply( 1:10, function(n) seq(from=n, to = 0 ) )As usual, more examples in the unit testshighlight 0.1-5
February 13, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
pre{
border: 1px solid black ;
font-size: small;
}I've pushed the version 0.1-5 of highlight to CRAN, it should be available in a couple of days.This version fixes highlighting of code when one wants to display the prompt and the continue prompt. For example, this code :rnorm(10,
mean = 5)runif(5)gets highlighted like this:using this code:> highlight( "/tmp/test.R", renderer=renderer_html(document=T), showPrompts = TRUE, output = "test.html" )Under the hood, highlight now depends on Rcpp and uses some of the C++ classes of the new Rcpp API. See the get_highlighted_text function in the code.Rcpp 0.7.6
February 13, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
Rcpp 0.7.6 was released yesterday. This is mostly a maintenance update since the version 0.7.5 had some very minor issues on windows, but we still managed however to include some new things as well.Vectors can now use name based indexing. This is typically useful for things like data frame, which really are named lists. Here is an example from our unit tests where we grab a column from a data frame and then compute the sum of its values:The classes CharacterVector,
GenericVector(aka List) and
ExpressionVector now have iterators. Below is another example from our ...Rcpp 0.7.5
February 9, 2010 · Posted by Romain Francois, Professional R Enthusiast ·
pre{
border: 1px solid black;
font-size: x-small ;
}Dirk released Rcpp 0.7.5 yesterdayThe main thing is the smarter wrap function that now uses techniques of type traits and template meta-programming to have a compile time guess at whether an object is wrappable, and how to do it. Currently wrappable types are :primitive types : int, double, Rbyte, Rcomplex
std::string
STL containers such as std::vector<T> as long as T is wrappable. This is not strictly tied to the STL, actually any type that has a nested type called iterator and member functions begin() and end() will do
STL maps keyed by ...