R 3.1.1 was released a few days ago, and as part of the policy we are trying to follow for
Rcpp11 releases, here is
Rcpp11 3.1.1. Sorry for the 12 days delay, but I was away in California, and Rcpp11 travelled with me, so I could not properly test the package. I have now tested the package extensively on these combinations:
OS X/clangat home.
Ubuntu/gcc 4.6.3through travis
Windows/gcc 4.6.3under duress
Here is the extract of the
NEWS.md file for this release:
sumnow supports complex sugar vector expressions
meanimplements the double pass algorithm for
more C++ support for Rcomplex:
Rcomplex& operator+=( Rcomplex&, const Rcomplex& )
Rcomplex operator/( Rcomplex, double )
Internal refactoring/simplification of all api classes. Api classes are now parameterized by a class for the storage policy instead of a template as before.
NamedDotshandle the border case when
...is missing (#123)
If the macro
RCPP_DO_BOUNDS_CHECKSis defined, vector classes will perform bounds checks. This is turned off by default because it kills performance. #141
Arrayno longer generates spurious warnings. #154
Added the concept of lazy vectors. A lazy vector is similar to a sugar expression, but it only knows how to apply itself, i.e. we cannot call
operator(int)on it. This is used for implementation of
createcan now also be used as a free function. For example:
IntegerVector x = create(1,2,3) ;. When used as a free function,
createchooses to create a lazy vector of the highest type. For example,
create(1,2.0)makes a lazy vector of type
REALSXP(what makes sense for
listfunction. It takes a variadic list of arguments and makes an R list from it. This uses the same underlying implementation as
List::createbut is nicer to use.
mapplywas reimplemented using variadic templates.
mapplynow accepts a function as first parameter, then a variable number of sugar expressions.
fillmethod to initialize all its data to the same value.
Initial implementation of
ListOf<T>is similar to
Listbut it only exposes constructors that take
Tobjects and methods that maintain this requirement. The implementation differs from Kevin Ushey’s implementation in Rcpp, which IMHO tries to do too much.
New sugar functions
Composefor intial attempt at functional programming and function composition #140.
Support for long vector has been added. Vectors are now indexed by the
R_xlen_ttype (64 bit on 64 bit platforms).
<Rcpp11>has been added. It just includes
<Rcpp.h>, but I like it better to have
Rcpp11namespace has been added as an alias to
Rcpp. So that we can type
using namespace Rcpp11 ;
variadic trailing arguments can now be used in
Logical vectors internally use the
Rbooleantype instead of
Added the syntax
x != NAto test if something is not the missing value.
New sugar function
import_nso that we can do
import_n( iterator, n )instead of
import( iterator, iterator + n) ;
New sugar function