This release contains a fix which helps the RppEigen package (mentioned previously on this blog), as well as an addition which permits user-defined finalizers for external pointer objects (following a suggestion on the mailing list). Two new examples where added: a Gibbs sampler illustration (blogged about as well) and a Rcpp-based Fibonacci implementation following a question on StackOverflow. And while that last example is clearly degenerate, the 700+ fold net speedup (as shown in my answer) is still pretty neat.
The complete NEWS entry is below; more details are in the ChangeLog file in the package and on the Rcpp Changelog page.
0.9.6 2011-07-26
o Added helper traits to facilitate implementation of the RcppEigen
package: The is_eigen_base traits identifies if a class derives from
EigenBase using SFINAE; and new dispatch layer was added to wrap() to
help RcppEigen
o XPtr now accepts a second template parameter, which is a function
taking a pointer to the target class. This allows the developper to
supply his/her own finalizer. The template parameter has a default
value which retains the original behaviour (calling delete on the
pointer)
o New example RcppGibbs, extending Sanjog Misra's Rcpp illustration of
Darren Wilkinson's comparison of MCMC Gibbs Sampler implementations;
also added short timing on Normal and Gaussian RNG draws between Rcpp
and GSL as R's rgamma() is seen to significantly slower
o New example on recursively computing a Fibonacci number using Rcpp and
comparing this to R and byte-compiled R for a significant speed gain
Thanks to
CRANberries, you can also look at a
diff to the previous release 0.9.5.
As always, even fuller details are on the
Rcpp Changelog page and the
Rcpp page which also
leads to the downloads, the
browseable
doxygen docs and zip files of doxygen output for the standard formats.
A local directory has
source and documentation too.
Questions, comments etc should go to the
rcpp-devel mailing list
off the R-Forge page