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. 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
NEWS.mdfile 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
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
- Added the
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
- New function
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).
- The header
<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