Rcpp 0.10.1

November 27, 2012

(This article was first published on Thinking inside the box , and kindly contributed to R-bloggers)

A the new Rcpp release 0.10.1
arrived this morning on CRAN (as already has
Windows binaries) and in Debian.

This is a follow-up to the recent 0.10.0 release which extends
the exciting new Rcpp-attributes and Rcpp-sugar work
further, and as in a number of other areas as detailed below in the NEWS sections.

This release brings an change to some of the binary interfaces. If you have packages using
Rcpp, you will most likely have to reinstall them from source.
Some change were made to const correctness as well as other aspects, and it seems that we have temporarily broken the excellent
RcppEigen and
RcppOctave packages. We are looking into this, and are sorry about the bug.

The complete NEWS
entry for 0.10.1 is below; more details are in the ChangeLog file in the package and on the
Rcpp Changelog page.

Changes in Rcpp version 0.10.1 (2012-11-26)

  • Changes in Rcpp sugar:

    • New functions: setdiff, union_, intersect
      setequal, in, min, max, range,
      match, table, duplicated

    • New function: clamp which combines pmin and pmax, e.g. clamp( a, x, b) is the same as pmax( b, pmin(x, a) )

    • New function: self_match which implements something similar to match( x, unique( x ) )

  • Changes in Rcpp API:

    • The Vector template class (hence NumericVector …) get the is_na
      and the get_na static methods.

    • New helper class no_init that can be used to create a vector without
      initializing its data, e.g. : IntegerVector out = no_init(n) ;

    • New exception constructor requiring only a message; stop function to throw an exception

    • DataFrame gains a nrows method

  • Changes in Rcpp attributes:

    • Ability to embed R code chunks (via specially formatted block comments) in C++ source files.

    • Allow specification of argument defaults for exported functions.

    • New scheme for more flexible mixing of generated and user composed C++ headers.

    • Print warning if no export attributes are found in source file.

    • Updated vignette with additional documentation on exposing C++ interfaces from packages and signaling errors.

  • Changes in Rcpp modules:

    • Enclose .External invocations in BEGIN_RCPP/END_RCPP

  • Changes in R code :

    • New function areMacrosDefined

    • Additions to Rcpp.package.skeleton:

      • attributes parameter to generate a version of rcpp_hello_world that uses Rcpp::export.

      • cpp_files parameter to provide a list of C++ files to include the in the src directory of the package.

  • Miscellaneous changes:

    • New example ‘pi simulation’ using R and C++ via Rcpp attributes

Thanks to
CRANberries, you can also look at a
diff to the previous release 0.10.0.
As always, even fuller details are on the
Rcpp Changelog page and the
Rcpp page which also
leads to the downloads, the
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

To leave a comment for the author, please follow the link and comment on their blog: Thinking inside the box .

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.


Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)