This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Suggests:
a little, and editing a few descriptive files. Details are in the Github repo.
Questions, comments etc about RcppEigen should go to the
rcpp-devel mailing list
off the R-Forge page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
As for the last few releases, Murray took charge of most changes. The NEWS file entry follows:
CRANberries also provides a diff to the previous release 0.3.1. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in RProtoBuf version 0.3.2 (2013-12-15)
Fixed a bug that erroneously prevented users from setting raw byte fields in protocol buffers under certain circumstances.
Give a user friendly error message when seting an extension to a message of the wrong type instead of causing a C++ check failure that terminates the Rsession.
Change object table lookup slightly to allow users to use the
<<-
operator in code using RProtoBuf without hitting astop()
error in the lookup routine.Add missing
enum_type
method and improve show method for EnumValueDescriptors.Improve documentation and tests for all of the above.
Rewrote
tests/
script calling RUnit tests
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
vignettes/
Courtesy of CRANberries, there
is also a diffstat report for the
most recent release.
Current and previous releases are available here
as well as on CRAN.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
vignettes/
Courtesy of CRANberries, there
is also a diffstat report for the
most recent release.
Current and previous releases are available here
as well as on CRAN.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
vignettes/
Courtesy of CRANberries, there
is also a diffstat report for the
most recent release.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
zgesdd
to R 3.1.0 (aka
"R-devel") so this issue goes away with the next release. Also of note, I
wrote up a short Rcpp Gallery post
illustrating the performance gains available from divide-and-conquer SVD.
The complete list of changes is below.
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.930.1 (2013-12-09)
Upgraded to Armadillo release Version 3.930.1
Armadillo falls back to standard complex svd if the more performant divide-and-conquer variant is unavailable
Added detection for Lapack library and distinguish between R's own version (withhout
zgesdd
) and system Lapack; a preprocessor define is set accordinglyChanges in RcppArmadillo version 0.3.930.0 (2013-12-06)
Upgraded to Armadillo release Version 3.930 ("Dragon's Back")
added divide-and-conquer variant of
svd_econ()
, for faster SVDadded divide-and-conquer variant of
pinv()
, for faster pseudo-inverseadded element-wise variants of
min()
andmax()
added
size()
based specifications of submatrix view sizesadded
randi()
for generating matrices with random integer valuesadded more intuitive specification of sort direction in
sort()
andsort_index()
added more intuitive specification of method in
det()
,.i()
,inv()
andsolve()
added more precise timer for the
wall_clock
class when using C++11New unit tests for complex matrices and vectors
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
endian.h
promptly breaking Windows
builds. So now we do something even simpler and just rely on the (even more
complete) test for endianness when R is built, which prevents all sorts of
complications for us and builds everywhere (with thanks to Brian Ripley for the suggestion).
While we were at it, we also added a new unit test.
Full changes are listed below.
Changes in version 0.2.2 (2013-11-29)
Switched to using the result from the compile-time configuration for R to determine big or little endian (as needed for the
NPy
headers)Added a new test (and test validation result file) for a complete save-reload cycle and comparison
CRANberries also provides a diffstat report for 0.2.2 relative to 0.2.1. As always, feedback is welcome and the rcpp-devel mailing list off the R-Forge page for Rcpp is the best place to start a discussion.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Changes in version 0.2.1 (2013-11-28)
Synchronized code with the
cnpy
repositoryAdded new function to test from R whether integers supported
Updated tests for integer support, if available
Updated vignette and discussion about need for rebuilding only RcppCNPy with the
-std=c++11
flag if integer support is desiredUpdated tests for integer support, if available
Updated THANKS file
Ensure that inclusion of
Rinternal.h
does not affect other headers by addingRF_NO_REMAP
CRANberries also provides a diffstat report for 0.2.1 relative to 0.2.0. As always, feedback is welcome and the rcpp-devel mailing list off the R-Forge page for Rcpp is the best place to start a discussion.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Having set up the updated R/Finance site, the Rcpp Gallery and Rcpp sites as well as the much-needed overhaul of the html side of the CRANberries RSS feed (which also integrates it with the static blog compiler I use), I figured I just needed a little time to get this done. Well, eight months later we're there. It still uses Twitter Bootstrap for layout, and a slightly modified Bootswatch theme.
Comments welcome, and please let me know if links are missing or going nowhere in places.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
The complete list of changes is below.
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.920.3 (2013-11-20)
Upgraded to Armadillo release Version 3.920.3
fix for handling of tiny matrices by
.swap()
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
This version ties up a number of smaller loose ends, but also adds a few new
things, particularly John's new exposeClass
. Details are as
usual in the NEWS
extract below, and also
in the ChangeLog file in the package and on the
Rcpp Changelog page.
Thanks to CRANberries, you can also look at a diff to the previous release 0.10.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 pageChanges in Rcpp version 0.10.6 (2013-10-27)
Changes in Rcpp API:
The function
exposeClass
takes a description of the constructors, fields and methods to be exposed from a C++ class, and writes C++ and R files in the package. Inherited classes can be dealt with, but require data type information. This approach avoids hand-coding module files.Two missing
is<>()
templates forCharacterVector
andCharacterMatrix
have been added, and some tests foris_na()
andis_finite()
have been corrected thanks to Thomas Tse.Changes in R code:
Export linking helper function
LdFlags
as well asRcppLdFlags
.Function
Rcpp.package.skeleton()
no longer passes anamespace
argument on topackage.skeleton()
Changes in R setup:
Raise requirement for R itself to be version 3.0.0 or later as needed by the vignette processing
Changes in Rcpp attributes:
sourceCpp
now correctly binds to Rtools 3.0 and 3.1
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Elling was as usual accompanied by his long-time collaborator Laurence Hobgood on piano, as well as local heros Clark Sommers on bass and John McLean on guitar. This time, Quincy Davies was on drums. And this band is realiably excellent, as is Elling in any live setting. The set was dominated by pieces from his most recent record and augmented by a few other standout pieces. There is a pretty rich set of live music by Elling on YouTube, see for example On Broadway (which was part of the set in a wonderfully fast and funked-up variant), Golden Lady (from the previous album, and also played live this time) or for example this wonderful version of You Send Me (also part of the concert).
I snatched a photo or two (while at least turning my flash off, unlike the weird gal to my left, but I digress) and posted one on Google+.
Kurt Elling will be back in Chicago at the Green Mill in early January. Expect to me there, and I hope to see you too!
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
We as R community members owe a great deal of thanks to the CRAN maintainers, and the R Core team. The tight integration between the language and the contributed code repository is unique among programming languages, and one of the many reasons why CRAN has been such a success and driver of growth and adoption for R. And the amount of work the CRAN maintainers put into this is substantial, and we owe them.
Yet there is some friction between the repo maintainers, and the community of developers. There have numerous discussions on the main developer list about various aspect of how CRAN maintains the impeccable quality of the code in the archive. One particular aspect which has bugging (at least me) is the lack of communication when policy changes are made. It would be trivial to posts a set of changes to the developer list, and I suggested as much. Only to be soundly ignored.
But changes to text (or html) files can monitored rather easily, and when such changes occur an alert can be sent. So I cooked up rather simple system for this which I called the CRAN Policy Watch. In essence, a simple cronjob monitors changes, and records new versions in a Github repo (which you can follow or star). Alternatively, the cronjob now also tweets from the @CRANPolicyWatch account which I invite everyone to subscribe to as well.
If someone knows of a simple tool to summarize diffs of html or text files in static html pages, I'd be interested to expand the service to some github.io pages. Alernatively I could also just commit to a single file too and let Github summarize the changes.
This was an itch I needed to scratch, and I hope some other people will fine this useful too.
When this package is installed, an R package developer can deploy it at
build-time via a simple LinkingTo: BH
declaration (which,
despite the title affects only compilation, not linking; don't ask...).
This frees developers from having to include the (sizeable) Boost headers in
their packages, and provides (parts of) Boost as part of the R build system.
A short example of using this BH package with Rcpp is provided in this Rcpp Gallery post; a number of other Boost-related posts are also available.
This release expands the scope of the package by a quite bit as shown in the NEWS entry:
Changes in version 1.51.0-3 (2013-10-19)
The other change is that I am now acting as maintainer taking over from Jay who has headed the initial creation and first releases after he, Mike and I had talked about this for way too long without actually doing anything about it. Thanks for getting everything rolling, Jay!
Comments and suggestions are welcome via the mailing list or issue tracker available via the package page at R-Forge.
This time, the format was a horn-free quintet with Lionel Loueke on guitar, James Genus on bass, Vinnie Colaiuta on drums and Zakir Hussain on tabla. Hancock himself played mostly keyboards / synthesizer, even when he used the full piano as input. Overall the concert was little uneven--Hancock himself alluded to the fact that the five hadn't really practised together. At times they were rolling: the opening was a very rhythmic version of his very old standard Watermelon Man; the encore was a very rocking version of his best-selling pop-fusion hit Rockit. In between, it was sometimes wanting. Still, all five are tremendous artists and I also had a fabulous seat as shown in this Google+ post with a picture of Hancock's setup, including multiple screens. But they did not really connect with audience as a whole, and by the time the encore rolled around, the house was pretty empty.
And so it continues: it is my home course, and the course I have run the most and know the best. Yet it is the one where I have the greatest difficulty coming in with a time that is good enough for Boston. I knew that today wasn't going to be that day, so I aimed lower to just run even splits (ie running about equal halfs). But even that failed: After 1:44 for the first half I lost a good ten minutes to finish at 3:40:42. Oh well. There is always next year...
But it was a simply sunningly fabulous day, and the race was once again very, very well put together. We were worried about extra security: not a real issue. The streets were lined with people and even Lisa and Julia managed to cheer me on at mile 13 (still smiles), mile 19 (grimacing, about to fall apart) and 25 (hanging in). And Anna was working the mile 18 water stop. The worst where miles 20 to 22 when I walked a fair bit. The race results have details; maybe I'll update the chart I made in prior years.
One minor FAIL was a wait at the end for gear check. That was pathetic. I guess the folks manning the stand didn't keep bags sorted well enough so lines were long, and slow. Oh well -- the rest was fine, and it remains one of the nicest marathon races.
Oh, and the other FAIL was that my Nexus 4 phone couldn't hold a charge til I was done. What's up with that? The running tracker traced me til around mile 20, and then the phone shut down for lack of juice. Disappointing too. But hey, it spares you, dear reader, the look of some bad post-race selfies...
This releases contains both a nice set of new Armadillo features as well as
some nice additions to RcppArmadillo,
due again mostly to Romain. Some of the changes tie into the changes
changes in Rcpp 0.10.5
as for example the ability to pass const
and const
ref
more efficiently (and we seem to have forgotten an entry in the
NEWS file).
The complete list of changes is below.
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.920.1 (2013-09-27)
Upgraded to Armadillo release Version 3.920.1 (Agencia Nacional Stasi)
faster
.zeros()
faster
round()
,exp2()
andlog2()
when using C++11added signum function:
sign()
added move constructors when using C++11
added 2D fast Fourier transform:
fft2()
added
.tube()
for easier extraction of vectors and subcubes from cubesadded specification of a fill type during construction of Mat, Col, Row and Cube classes, eg.
mat X(4, 5, fill::zeros)
Initial implementation of
wrap<subview>
Improved implementation of
as<>()
andwrap()
for sparse matricesConverted main vignette from
LaTeX
styleminted
tolstlisting
which permits builds on CRAN; removed setBuildVignettes: FALSE
.
Once more, this release brings a large number of exciting changes to Rcpp. Some concern usability, some bring new features, some increase performance; see below for the detailed list. We have now released three updates on a quarterly cycle; if we keep this up the next version ought to be ready at the end of December.
As in the past, we tested the release rather rigorously by checking against all packages I could (relatively easily) built on my server: this time it successfully passed \code{R CMD check} for all 107 packages I can build locally out of a total of 136 packages. (Two failed: one for an error in \code{Makevars}, and one for the need of an X11 server during tests; this may get addressed in the in test script next time). As all of these 107 packages passed, we do not expect any issues with dependent packages. Should there be issues we would appreciate a note, preferably with reproducible code, to the rcpp-devel mailing list.
The complete NEWS
entry for 0.10.4 is below; more details are in the ChangeLog file in the package and on the
Rcpp Changelog page.
Thanks to CRANberries, you can also look at a diff to the previous release 0.10.4. 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 pageChanges in Rcpp version 0.10.5 (2013-09-28)
Changes in R code:
New R function
demangle
that calls theDEMANGLE
macro.New R function
sizeof
to query the byte size of a type. This returns an object of S3 classbytes
that has aChanges in Rcpp API:
Add
defined(__sun)
to lists of operating systems to test for when checking for lack ofbacktrace()
needed for stack traces.
as<T*>
,as<const T*>
,as<T&>
andas<const T&>
are now supported, when T is a class exposed by modules, i.e. withRCPP_EXPOSED_CLASS
DoubleVector
as been added as an alias toNumericVector
New template function
is<T>
to identify if an R object can be seen as aT
. For exampleis<DataFrame>(x)
. This is a building block for more expressive dispatch in various places (modules and attributes functions).
wrap
can now handle more types, i.e. types that iterate overstd::pair<const KEY, VALUE>
where KEY can be converted to aString
andVALUE
is either a primitive type (int, double) or a type that wraps. Examples :
std::map<int, double>
: we can make a String from an int, and double is primitive
boost::unordered_map<double, std::vector<double> >
: we can make a String from a double andstd::vector<double>
can wrap itselfOther examples of this are included at the end of the
wrap
unit test file (runit.wrap.R
andwrap.cpp
).
wrap
now handles containers of classes handled by modules. e.g. if you expose a classFoo
via modules, then you can wrapvector<Foo>
, ... An example is included in thewrap
unit test file.
RcppLdFlags()
, often used inMakevars
files of packages using Rcpp, is now exported from the package namespace.Changes in Attributes:
Objects exported by a module (i.e. by a
RCPP_MODULE
call in a file that is processed bysourceCpp
) are now directly available in the environment. We used to make the module object available, which was less useful.A plugin for
openmp
has been added to support use of OpenMP.
Rcpp::export
now takes advantage of the more flexibleas<>
, handling constness and referenceness of the input types. For users, it means that for the parameters of function exported by modules, we can now use references, pointers and const versions of them. The fileModule.cpp
file has an example.No longer call non-exported functions from the tools package
No longer search the inline package as a fallback when loading plugins for the the
Rcpp::plugins
attribute.Changes in Modules:
We can now expose functions and methods that take
T&
orconst T&
as arguments. In these situations objects are no longer copied as they used to be.Changes in sugar:
is_na
supports classesDatetimeVector
andDateVector
Changes in Rcpp documentation:
The vignettes have been moved from
inst/doc/
to thevignettes
directory which is now preferred.The appearance of the vignettes has been refreshed by switching to the Bistream Charter font, and microtype package.
Deprecation of
RCPP_FUNCTION_*
:
The macros from the
preprocessor_generated.h
file have been deprecated. They are still available, but they print a message in addition to their expected behavior.The macros will be permanently removed in the first Rcpp release after July 2014.
Users of these macros should start replacing them with more up-to-date code, such as using 'Rcpp attributes' or 'Rcpp modules'.
Once again, Murray lead this release and added a number improvements. The NEWS file entry follows:
CRANberries also provides a diff to the previous release 0.3.0. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in RProtoBuf version 0.3.1 (2013-09-13)
Added support for setting and getting 64-bit integer types as character strings of decimal integers to work around R's lack of native 64-bit integer types.
Added better error handling, documentation, and tests to the extensions support (getExtension and setExtension).
Add support to P for returning extension descriptors.
Improved error messages to include field names when invalid fields are specified to protocol buffer messages with new, update, etc.
Improved configure to detect and pass
-std=c++0x
if it is available to enable long long 64-bit integer support in Rcpp.Improved configure in the case when pkg-config is not available or does not know about the google protocol buffer includes.
Replaced newly deprecated Rcpp macros with a simplified macro functionality to avoid warnings on the latest development version of Rcpp.
The talk provided a brief introduction to Rcpp for R and C++ integration. Slides are now up on my talks / presentations page.
Conrad made some standard cross-products faster, and added
vectorise()
, any()
and all()
functions. We also added an extension header for more
automated conversion of sparse matrices (which is
already used by a post on the Rcpp Gallery).
The complete list of changes is below.
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.910.0 (2013-08-12)
Upgraded to Armadillo release Version 3.910.0 (Pyrenees)
faster multiplication of a matrix with a transpose of itself, ie.
X*X.t()
andX.t()*X
added
vectorise()
for reshaping matrices into vectorsadded
all()
andany()
for indicating presence of elements satisfying a relational conditionAdded conversion support for sparse matrices (of type double) created by the Matrix package as class
dgCMatrix
Moved vignette sources from
inst/doc
tovignettes
; setBuildVignettes: FALSE
as theminted
mode forLaTeX
upsets the CRAN builders.
Changes in inline version 0.3.13 (2013-08-08)
Applied contributed patch by Mikhail Umorin which corrects
cfunction()
in the case of alist
of signature and body arguments.
Courtesy of CRANberries, there is also a diffstat report for the most recent release. A few more details are available at the R-Forge page.
The main bug fix is a change in the in-place version of reshape()
.
This in turn caused the CRAN package
Amelia to fail, but
some diligent debugging by Conrad (which was much appreciated) revealed that
the error was in fact in
RcppArmadillo
where we did not set the matrix flag properly in the
constructor. The corresponding one-character fix had been made in this release.
Another package exhibiting an issue is
unmarked. It needs
to make the target variable of reshape
a matrix object in a
handful of places. I sent the authors a small patch addressing this but have
not yet heard back.
The complete list of changes is below. In the meantime, I have also done
some work on a new as()
and wrap()
converters for
sparse matrices; a first implementation is in SVN.
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.900.7 (2013-08-02)
Upgraded to Armadillo release Version 3.900.7 (Bavarian Sunflower)
minor fix for inplace
reshape()
minor corrections for compilation issues under GCC 4.8+ and MSVC
Corrected setting of
vec_stats
in intialization of row, vector and matrix objectsThe inline package is no longer used in the examples and unit tests which have all been converted to using Rcpp attributes
Murray added a lot of new features which merited the increase in the minor number. The NEWS file entry follows below:
CRANberries also provides a diff to the previous release 0.2.6. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.Changes in RProtoBuf version 0.3 (2013-07-13)
Added support for Protocol Buffer extensions through the new getExtension and setExtension methods for Message objects, and added top-level extensions to the descriptor pool.
Added more user-friendly
show()
methods for Messages, Descriptors, and other RProtoBuf objects. A common source of confusion on the mailing lists is to confuse Messages and Descriptors. The newshow()
methods succinctly display more information about e.g. the number of set fields in a message to make it a little clearer to users what type of object they are working with.Added has method for EnumDescriptor objects to test existance of a named constant in an enumeration, and fix a bug in the length method for these objects.
Added a number method for EnumValueDescriptor objects to return the number of a named enumeration constant directly.
Improved documentation and unit tests.
And before I carry on, let me say that Feedly actually does pretty well. They handled the onslaught of new users; they also listened and changed their UI a little to be more compact and Reader-alike And most importantly, it mostly just works.
Until it doesn't.
Around the time Feedly shifted folks to their own cloud-based backend, posts from my very own CRANberries aggregator of CRAN package changes for R started to show only truncated posts. See this screenshot from reading Feedly:
and compare it with this one from TheOldReader:
which contains the diffstat output, nicely marked up and all. Now, it so happens that I am the creator of the very RSS feed I am consuming here, and I wrote it so that I could read the very diffstat output that is now missing. And I know full well that neither the code, nor the hosting (on my own box), nor any other aspect changed. Before confirming this via TheOldReader, I looked at the RSS output, and I tried other frontend and apps --- and it became clear that the bug seems to be at the Feedly cloud storage level. And trying to be a good sport, I submitted a bug report / suggestion, but to no avail (apart from two other chiming in that they see this elsewhere too).
Given that I am the coder behind the feed that is displayed in a truncated manner, I am aware that I am using a code stack that is stale (the original Blosxom static web generator) yet which has not posed another problem anywhere in the decade I used it. Nor does the CRANberries feed pose a problem when aggregated and viewed via the TheOldReader code path, or for that matter via Planet R which also carries (parts of) CRANberries.
So for now, I have to either pivot out of the CRANberries RSS reading in Feedly and go directly to the webpage (fine, but cumbersome and in need of a working connection) or use a second subscription mechanism. I appreciate what the TheOldReader folks are doing---presumably with a minor fraction of the resources available to Feedly---and may hang with them for now.
But it would be awfully nice if Feedly could sleep off its hangover and fix this. In which case I'd be much happier recommending its service.
This release brings a fairly large number of fixes and improvements across a number of Rcpp features, see below for the detailed list.
We are also announcing with this release that we plan to phase out the
RCPP_FUNCTION_*
macros. Not only have they been superceded by Rcpp
Modules and Rcpp Atributes (each of which has its own pdf
vignette in the Rcpp package), but they also appear to be at best lightly used. We
are for example not aware of any CRAN packages
deploying them. To provide a smooth transition, we are aiming to keep them
around for another twelve months, but plan to remove them with the first
release after that time window has passed.
As before, we tested the release rather rigorously by checking against all packages I could (relatively easily) built on my server: this time it covered 91 of the 124 CRAN packages depending on Rcpp. As all of these 91 packages passed their checks, we do not expect any issues with dependent packages.
The complete NEWS
entry for 0.10.4 is below; more details are in the ChangeLog file in the package and on the
Rcpp Changelog page.
Thanks to CRANberries, you can also look at a diff to the previous release 0.10.3. 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 pageChanges in Rcpp version 0.10.4 (2013-06-23)
Changes in R code: None beyond those detailed for Rcpp Attributes
Changes in Rcpp attributes:
Fixed problem whereby the interaction between the gc and the
RNGScope
destructor could cause a crash.Don't include package header file in generated C++ interface header files.
Lookup plugins in inline package if they aren't found within the Rcpp package.
Disallow compilation for files that don't have extensions supported by
R CMD SHLIB
Changes in Rcpp API:
The
DataFrame::create
set of functions has been reworked to just useList::create
and feed to theDataFrame
constructorThe
operator-()
semantics forDate
andDatetime
are now more inline with standard C++ behaviour; with thanks to Robin Girard for the report.RNGScope counter now uses unsigned long rather than int.
Vector<*>::erase(iterator, iterator)
was fixed. Now it does not remove the element pointed by last (similar to what is done on stl types and what was intended initially). Reported on Rcpp-devel by Toni Giorgino.Added equality operator between elements of
CharacterVector
s.Changes in Rcpp sugar:
New function
na_omit
based on the StackOverflow thread http://stackoverflow.com/questions/15953768/New function
is_finite
andis_infinite
that reproduces the behavior of R'sis.finite
andis.infinite
functionsChanges in Rcpp build tools:
Fix by Martyn Plummer for Solaris in handling of
SingleLogicalResult
.The
src/Makevars
file can now optionally override the path for/usr/bin/install_name_tool
which is used on OS X.Vignettes are trying harder not to be built in parallel.
Changes in Rcpp documentation:
Updated the bibliography in
Rcpp.bib
(which is also sourced by packages using Rcpp).Updated the
THANKS
file.Planned Deprecation of
RCPP_FUNCTION_*
:
The set of macros
RCPP_FUNCTION_
etc ... from thepreprocessor_generated.h
file will be deprecated in the next version of Rcpp, i.e they will still be available but will generate some warning in addition to their expected behavior.In the first release that is at least 12 months after this announcement, the macros will be removed from Rcpp.
Users of these macros (if there are any) should start replacing them with more up to date code, such as using Rcpp attributes or Rcpp modules.
Organizers Louise and Eugene were able to move this to a slightly larger room as the initial capacity of 50 was filled almost immediately. As of right now, the talk page shows a few available slots. If you're in the Sydney are in early July, why not register and swing by?
If you're not in the area, the Rcpp Events page lists other upcoming talks too.
package.skeleton()
. The complete NEWS entry is below.
Changes in inline version 0.3.12 (2013-06-12)
Align
package.skeleton
with the R-devel version of the function which no longer has aNAMESPACE
argument.Remove copy of LGPL in source archive as
R CMD check
now complains about it. License status continues to be specified in fileDESCRIPTION
.
Courtesy of CRANberries, there is also a diffstat report for the most recent release. A few more details are available at the R-Forge page.
Amazon still lists it as not-yet-released; I expect this to change in the next few days.
It has a number of nice changes, mostly on the performance side of things (see below) and a minor cleanup/improvement in our Kalman filter example (which, as I just realized, I forgot to note in the \code{NEWS.Rd} in the released tarball):
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.900 (2013-06-04)
Upgraded to Armadillo release Version 3.900.0 (Bavarian Sunflower)
added automatic SSE2 vectorisation of elementary expressions (eg. matrix addition) when using GCC 4.7+ with -O3 optimisation
added support for saving & loading of cubes in HDF5 format, contributed by Szabolcs Horvat
faster
median()
, contributed by Ruslan Shestopalyukfaster handling of compound expressions with transposes of submatrix rows
faster handling of compound expressions with transposes of complex vectors
Kalman filter example switched from inline to \code{sourceCpp}, which simplifies / streamlines the C++ side a little
Some participants, myself included, had already posted on their personal websites (though had forgotten to mention it here). In any event, I just updated the website with links to the pdf (or ppt) slides of all presenters who shared their material with us. Supplemental material may be made available too at a later date.
We hope you find these slides useful. Please do spread the word about the R/Finance conference as we expect to have a sixth edition in May 2014---and we do look forward to receiving even more outstanding submissions. Dates, details, call for papers, etc will be forthcoming over the next few months.
The summary of the main changes follows:
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.820 (2013-05-12)
Upgraded to Armadillo release Version 3.820 (Mt Cootha)
faster
as_scalar()
for compound expressionsfaster transpose of small vectors
faster matrix-vector product for small vectors
faster multiplication of small fixed size matrices
And yesterday I got to spend a day giving an invited day-long workshop at the Medical College of Wisconsin as part of a two-day R workshop sponsored by the Milwaukee Chapter of the American Statistical Assocation as well as the CTSI and PCOR centers at the Medical College of Wisconsin. In the workshop, I followed the previously-used setup of four parts on introduction, Rcpp details, advanced topics and last-but-not-least applications, but also updated and extended to more recent topics.
Pdf slides from both events are now on my presentations page.
sample()
function contributed by Christian Gunning.
As RcppArmadillo is used by an increasing number of packages---on CRAN alone, we find 34 direct dependencies---I also added the package to Debian and upload there in parallel.
The summary of the main changes follows:
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.810.0 (2013-04-19)
Upgraded to Armadillo release Version 3.810.0 (Newell Highway)
added fast Fourier transform:
fft()
added handling of
.imbue()
and.transform()
by submatrices and subcubesadded batch insertion constructors for sparse matrices
minor fix for multiplication of complex sparse matrices
Updated sample() function and test again contributed by Christian Gunning
Now open for registrations:
R / Finance 2013: Applied Finance with R
May 17 and 18, 2013
Chicago, IL, USA
The registration for R/Finance 2013 -- which will take place May 17 and 18 in Chicago -- is NOW OPEN!
Building on the success of the previous conferences in 2009, 2010, 2011 and 2012, we expect more than 250 attendees from around the world. R users from industry, academia, and government will joining 30+ presenters covering all areas of finance with R.
We are very excited about the four keynotes by Sanjiv Das, Attilio Meucci, Ryan Sheftel and Ruey Tsay. The main agenda (currently) includes seventeen full presentations and fifteen shorter "lightning talks". We are also excited to offer five optional pre-conference seminars on Friday morning.
To celebrate the fifth year of the conference in style, the dinner will be held at The Terrace of the Trump Hotel. Overlooking the Chicago river and skyline, it is a perfect venue to continue conversations while dining and drinking.
More details of the agenda are available at:
http://www.RinFinance.com/agenda/Registration information is available at
http://www.RinFinance.com/register/and can also be directly accessed by going tohttp://www.regonline.com/RFinance2013We would to thank our 2013 Sponsors for the continued support enabling us to host such an exciting conference:International Center for Futures and Derivatives at UICRevolution Analytics
MS-Computational Finance at University of Washington
lemnica
OpenGamma
OneMarketData
RStudio
On behalf of the committee and sponsors, we look forward to seeing you in Chicago!
Gib Bassett, Peter Carl, Dirk Eddelbuettel, Brian Peterson,
Dale Rosenthal, Jeffrey Ryan, Joshua Ulrich
See you in Chicago in May!!
This is the fourth release in the 0.10.* series, and further extends and solidifies the excellent Rcpp attributes. A few other bugs were fixed as well, and support for wide character strings has been added.
We once again tested this fairly rigorously by checking against 86 of the 100 CRAN packages depending on Rcpp. All of these passed. So we do not expect any issues with dependent packages, but one never knows.
The complete NEWS
entry for 0.10.3 is below; more details are in the ChangeLog file in the package and on the
Rcpp Changelog page.
Thanks to CRANberries, you can also look at a diff to the previous release 0.10.2. 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 pageChanges in Rcpp version 0.10.3 (2013-03-23)
Changes in R code:
Prevent build failures on Windowsn when Rcpp is installed in a library path with spaces (transform paths in the same manner that R does before passing them to the build system).
Changes in Rcpp attributes:
Rcpp modules can now be used with
sourceCpp
Standalone roxygen chunks (e.g. to document a class) are now transposed into RcppExports.R
Added
Rcpp::plugins
attribute for binding directly to inline plugins. Plugins can be registered using the newregisterPlugin
function.Added built-in
cpp11
plugin for specifying the use of C++11 in a translation unitMerge existing values of build related environment variables for sourceCpp
Add global package include file to RcppExports.cpp if it exists
Stop with an error if the file name passed to
sourceCpp
has spaces in itReturn invisibly from void functions
Ensure that line comments invalidate block comments when parsing for attributes
Eliminated spurious empty hello world function definition in Rcpp.package.skeleton
Changes in Rcpp API:
The very central use of R API R_PreserveObject and R_ReleaseObject has been replaced by a new system based on the functions Rcpp_PreserveObject, Rcpp_ReleaseObject and Rcpp_ReplaceObject which shows better performance and is implemented using a generic vector treated as a stack instead of a pairlist in the R implementation. However, as this preserve / release code is still a little rough at the edges, a new #define is used (in config.h) to disable it for now.
Platform-dependent code in Timer.cpp now recognises a few more BSD variants thanks to contributed defined() test suggestions
Support for wide character strings has been added throughout the API. In particular String, CharacterVector, wrap and as are aware of wide character strings
The weekend started with a slight disappointment. I had taken Friday off, and hoped to reach NY by early afternoon to join JJ there, and to spend the afternoon with the RStan team. However, the tail end of last week's snowstorm made it such that we both got to Columbia's stats department closer to 6pm rather than 1pm, and half the team had left. Dang. Very frustrating travel experience. We salvaged the evening by gabbing over a cold beverage or two, before sharing some sacred New York pizza with Wes McKinney and Jared.
The class itself on Saturday went quite well. With JJ on deck, we were able to have every participant log into an EC2-hosted instance of RStudio Server, which worked very well for usage examples of Rcpp. It has been almost a year since I last taught the class, and many exciting things--such as Rcpp attributes, added by JJ himself--have appeared, which made it extra fun. Participants were rather kind with praise. Either they really liked it, or they really are hard-nosed New Yorkers who manage to lie to my face without me noticing.
We ended the day with some hard-earned cold beverages, followed by some dinner at Sylvia's (as tweeted by Jared) followed by more drinks. Ended up a little past my usual bedtime, but I managed to get out and enjoy a lovely 6.5 miles run across Central Park the next morning before leaving town.
All in all, a very nice weekend, the travel horror of Friday notwithstanding. And who know, maybe we'll just do it again another time...
sample()
(contributed by Christian Gunning) which provides
sampling (with or without replacement) at the C++ level modeled after what we
are used to in R itself. We also refactored the unit tests into just two
compilation units to speed testing up a little.
The summary of the main changes follows:
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.800.1 (2013-03-12)
Upgraded to Armadillo release Version 3.800.1 (Miami Beach)
workaround for a bug in ATLAS 3.8 on 64 bit systems
faster matrix-vector multiply for small matrices
Added new
sample()
function and tests contributed by Christian GunningRefactored unit testing code for faster unit test performance
The summary of the main changes follows:
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.800.0 (2013-03-01)
Upgraded to Armadillo release Version 3.800.0 (Miami Beach)
Armadillo is now licensed using the Mozilla Public License 2.0
added
.imbue()
for filling a matrix/cube with values provided by a functor or lambda expressionadded
.swap()
for swapping contents with another matrixadded
.transform()
for transforming a matrix/cube using a functor or lambda expressionadded
round()
for rounding matrix elements towards nearest integerfaster
find()
fixes for handling non-square matrices by
qr()
andqr_econ()
minor fixes for handling empty matrices
reduction of pedantic compiler warnings
Updated vignette to paper now in press at CSDA
Added CITATION file with reference to CSDA paper
Changes in inline version 0.3.11 (2013-02-26)
Fix bug in
cfunction
for.C
convention with raw vectors.Correct
cfunction
to use.Platform$dynlib.ext
as the file extension for the library file (unless on Windows).Allow
rcpp
wrapper to pass another plugin (as eg RcppArmadillo)Changes in inline version 0.3.10 (2012-10-03)
getDynLib()
error message corrected as suggested by Yasir SuhailAdded
rcpp()
wrapper forcxxfunction()
which setsplugin="Rcpp"
Converted NEWS to NEWS.Rd
New maintainer, after having coordinated releases (along with Romain) since 0.3.5 in June 2010
Changes in inline version 0.3.9 (2012-10-02)
Uncoordinating hijacking of package by CRAN maintainers with a single word change in
cfunction.R
to prevent an error under an unreleased version of R
Courtesy of CRANberries, there is also a diffstat report for the most recent release. A few more details are available at the R-Forge page.
The second paper is Eddelbuettel and Sanderson (2013). This one is titled RcppArmadillo: Accelerating R with high-performance C++ linear algebra and introduces the RcppArmadillo package which brings Conrad Sanderson's Armadillo C++ template library to GNU R by deploying Rcpp. The paper is currently "in press" at Computational Statistics & Data Analysis but the DOI 10.1016/j.csda.2013.02.005 will remain once a volume and issue is assigned by CSDA.
Preprints of both papers are available via my papers page, and as vignettes in the corresponding packages.
The upcoming Rcpp class in New York will feature Rcpp, RcppArmadillo and RcppEigen. Space is still available.
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.6.3 (2013-02-20)
Upgraded to Armadillo release Version 3.6.3
faster
find()
minor fix for non-contiguous submatrix views to handle empty vectors of indices
reduction of pedantic compiler warnings
The style will be hands-on, with numerous concrete examples and solid coverage of most aspects of Rcpp and related packages. As before, about six hours of instruction, split into four sessions of around ninety minutes focussing (loosely) on motivation/intro, core parts, extensions and applications. This should leave ample time for informal discussions and Q+A---as well as for lunch and coffee breaks---for a total of eight hours in the classroom.
This is being put together in New York with the help of Jared Lander, and we will have some technical assistance from RStudio in order to use their EC2 farm for exercises with Rcpp.
Registrations details are available here; information about other Rcpp events is also available.
Feel free to contact me or Jared at our usual email addresses with questions.
The discount curve building code in QuantLib has shown some overly large numerical instabilities. We have used the same example parameters (taken from the Swap example in QuantLib) for years; it currently fails to solve for a rate at some term further out the curve. So I made the decistion to disable this just in the examples in order to not upset the CRAN testing framework. The examples now use a flat curve instead. I also updated one function to silence some new warnings from R-devel about symbols from another packages's namespace (in this case rgl, and it is just for surface plots, a purely cosmetic function).
Thanks to CRANberries, there is also a diff to the previous release 0.3.9. Full changelog details, examples and more details about this package are at my RQuantLib page.
This is a minor bug release regarding just the recently-added sha512 support. Turns out the wrong initial buffer size was used on the R side. Hannes fixed that within hours after we got the bug report; but I was a little swamped with multiple deadlines and failed to upload this right away.
CRANberries provides the usual summary of changes to version 0.6.2. Our package is available via the R-Forge page leading to svn and tarball access, my digest page, the local directory here as well as via Debian and its mirrors.
I have in fact handed a complete draft of my book about Seamless R and C++ Integration with Rcpp to Springer a few weeks ago. With a bit of luck on the production side, we could be seeing physical copies by May of a new title in their popular UseR! Series series.
And to the slowly growing new Rcpp site, I have added a a formal page about the Rcpp book where one can find information about it, including a link to the Springer page, links to a few bookseller's pages --- as well as a few wonderfully flattering endorsements. Eventually, errata and other support material should be available via this page too. Can't wait til I hold a physical copy in hand...
With that, a few quick words about the upcoming master class in New York. It will be a full day, covering an introduction and motivation, details about the core data types, tools for working with and and extending Rcpp and of course applications galore, including RcppArmadillo and RInside. I have done the same one day class format a few times before, most recently (with Revolution Analytics) in San Francisco in late 2011, and also as a two-part seminar at UseR! 2012. This time, we plan on providing cloud-hosted RStudio instances for participants. Better still, RStudio's own JJ Allaire will be on deck as well for RStudio --- and Rcpp Attributes --- questions.
Details and registration information for the New York class are at this page.
So after it was up and working, JJ and I refined the look and feel, and I started to add more content so that would have something by the time the initial announcement came around. A few years I read about an (attributed) secret to Seinfeld's producitivity: "Don't break the chain". Just keep writing, and write every day.
I made my goal of a post every day for just over a month, and created this sequences:
(20 Dec) simulating-pi,
(21 Dec) vector-minimum,
(22 Dec) gsl-colnorm-example,
(23 Dec) fibonacci-sequence,
(24 Dec) random-number-generation,
(25 Dec) armadillo-sparse-matrix,
(26 Dec) timing-rngs,
(27 Dec) stl-inner-product,
(28 Dec) stl-transform,
(29 Dec) stl-transform-for-subsetting,
(30 Dec) stl-random-shuffle,
(31 Dec) stl-random-sample,
(01 Jan) stl-for-each,
(02 Jan) armadillo-subsetting,
(03 Jan) accessing-environments,
(04 Jan) armadillo-eigenvalues,
(05 Jan) r-function-from-c++,
(06 Jan) using-the-rcpp-timer,
(07 Jan) sugar-function-clamp,
(08 Jan) using-rcout,
(09 Jan) first-steps-with-C++11,
(10 Jan) simple-lambda-func-c++11,
(11 Jan) eigen-eigenvalues,
(12 Jan) getting-attributes-for-xts-example,
(13 Jan) intro-to-exceptions,
(14 Jan) a-first-boost-example,
(15 Jan) a-second-boost-example,
(16 Jan) timing-normal-rngs,
(17 Jan) creating-xts-from-c++,
(18 Jan) gsl-for-eigenvalues,
(19 Jan) accessing-xts-api,
(20 Jan) custom-as-and-wrap-example,
(21 Jan) passing-cpp-function-pointers,
The Rcpp Gallery continues to grow, we now have 58 posts from 7 different authors. And it is open for business: new contributions are always welcome.
NEWS.Rd
file into the
proper location in the inst/
directory, and, while were at it,
mentioned the new Rcpp Gallery in the DESCRIPTION
file.
Thanks to CRANberries, there is the standard diff to the previous release 0.1.5. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.
paste0()
in a few places, and this is only
available with newer versions of R. To not introduce as somewhat unnessecary
dependency, we reverted this to plain old paste()
.
CRANberries
provides the usual summary of changes to version
0.6.1.
As usual, our package is available via the R-Forge page leading to svn and tarball access, my digest page, the local directory here as well as via Debian and its mirrors.
As that post notes, BH is still pretty new and rough, and we probably missed some other useful Boost packages. If so, let one of us know.
Courtesy of CRANberries, there is also a diffstat report for the most recent release As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.Changes in RcppArmadillo version 0.3.6.2 (2013-01-29)
Upgraded to Armadillo release Version 3.6.2
faster determinant for matrices marked as diagonal or triangular
more fine-grained handling of 64 bit integers
Added a new example of a Kalman filter implementation in R, and C++ using Armadillo via RcppArmadillo, complete with timing comparison
Depends:
, Imports:
or LinkingTo:
statement on it.
The full list will always be at the bottom of the CRAN page for Rcpp; I also manually edit a list on my Rcpp page. But for the record as of today, here is the current list as produced by a little helper script I keep:
acer apcluster auteur bcp bfa bfp bifactorial blockcluster ccaPP cda classify clusteval ConConPiWiFun EpiContactTrace fastGHQuad fdaMixed forecast fugeR GeneticTools gMWT gof gRbase gRim growcurves GUTS jaatha KernSmoothIRT LaF maxent mets minqa mirt mRMRe multmod mvabund MVB NetworkAnalysis ngspatial oem openair orQA parser pbdBASE pbdDMAT phom phylobase planar psgp quadrupen Rchemcpp Rclusterpp RcppArmadillo RcppBDT rcppbugs RcppClassic RcppClassicExamples RcppCNPy RcppDE RcppEigen RcppExamples RcppGSL RcppOctave RcppRoll RcppSMC RcppXts rforensicbatwing rgam RInside Rmalschains Rmixmod robustgam robustHD rococo RProtoBuf RQuantLib RSNNS RSofia rugarch RVowpalWabbit SBSA sdcMicro sdcTable simFrame spacodiR sparseHessianFD sparseLTSEigen SpatialTools stochvol surveillance survSNP termstrc tmg transmission trustOptim unmarked VIM waffect WideLM wordcloud zic
And not to be forgotten is BioConductor which has another 10:
ddgraph GeneNetworkBuilder GOSemSim GRENITS mosaics mzR pcaMethods Rdisop Risa rTANDEM
As developers of Rcpp, we are both proud and also a little humbled. The packages using Rcpp span everything from bringing new libraries to R, to implementing faster ways of doing things we have before to doing completely new things. It is an exciting time to be using R, and to be connecting R to C++, especially with so many exciting things happening in C++ right now. Follow the Rcpp links for more, and come join us on the Rcpp-devel mailing list to discuss and learn.
Duncan Murdoch added AES support, and helped me fix two issues which
(annoyingly) made the Rout.save
output differ on another platform.
CRANberries provides the usual summary of changes to version 0.6.0.
As usual, our package is available via the R-Forge page leading to svn and tarball access, my digest page and the local directory here.
Now, as our luck will have it, the Rcpp-devel list received his message but did not transmit it for an apparent mail system outage at WU Vienna: no sign at the Gmane archive of rcpp-devel or in the personal mailboxen of myself or anybody I spoke to. Hence, so far, and preceding this blog announcement, the only way word got out was via this earlier tweet of mine from about 12 hours ago.
The Rcpp Gallery is really the brainchild of JJ. It builds on what he
contributed over the last few months in not one but two implementations: Rcpp
Attributes. These are described in a
vignette of their own.
They provide very powerful new functions like sourceCpp
which allow the easiest-yet way to get compiled code into R---see for example these
posts from my blog about
simulating pi
in essentially five lines of R or five lines of C++, or this post about using
the GSL with ease
from R. The Rcpp Gallery also builds on Yihui's excellent
knitr package which
gained the ability to process C++ code just like R code, as well as some
Ruby /
Jekyll magic to build a website on the github
infrastructure. I helped a little on the side by (at long last) learning how
to do prettier websites thanks to Boostrap and its theming extensions.
So what does it do, and what is it for? Have a look around the Rcpp Gallery site.
Each post is based on a single C++ (or Markdown) file which gets digested by
knitr and Rcpp, with the actual output shown alongside the marked up code and
explanatory text. Raw sources are available, just pass them into the
sourceCpp()
function from a current Rcpp release and you should have the
same output.
Our idea is to have this as a repository for useful code: from simple and introductory to fancy and featureful. We already seeded it with several dozen posts covered anything from lesser known but powerful STL idioms, to Rcpp sugar, to tieing in Armadillo or GSL, random number generation and of course benchmarking---as we do love performance.
The entire content is in this github repository, and our page on how to contribute details how you can get involved.
We are looking forward to what is to come. In many ways, we are only just getting started.