A new release 0.3.3.9.2 of RcppEigen arrived on CRAN today (and already went to Debian). Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
This update was (as it happens) requested by CRAN as R aims to bring the Fortran / C interface to best practices. We call dgesdd
twice in one example and use a character argument, and the-powers-that-be now prefer better control over that character argument. So we did. Another change, kindly contributed by Mikael Jagan, switches row and column indices for R_xlen_t
allowing for greater range. Plus some more small tweaks mostly to CI, see the NEWS entry below for full details.
And again as we said for the previous three releases:
One additional and recent change was the accomodation of a recent CRAN Policy change to not allow
gcc
orclang
to mess with diagnostic messages. A word of caution: this may make your compilation of packages using RcppEigen very noisy so consider adding-Wno-ignored-attributes
to the compiler flags added in your~/.R/Makevars
.
We still find this requirement rather annoying. Eigen is only usable if you set, say,
-Wno-deprecated-declarations -Wno-parentheses -Wno-ignored-attributes -Wno-unused-function
asoptions in
~/.R/Makevars`. But CRAN makes the rules. Maybe if a few of us gently and politely nudge them they may relent one day. One can only hope.
The complete NEWS
file entry follows.
Changes in RcppEigen version 0.3.3.9.2 (2022-04-05)
Added test coverage in continuous integration
Added new tests to increase test coverage
Small improvement to the
RcppEigen.package.skeleton()
codeSmall updates and edits to
README.md
andinst/CITATION
Use
R_xlen_t
for vector rows and columns (by Mikael Jagan)Support
USE_FC_LEN_T
by addingFCONE
to two dgesdd calls
Courtesy of CRANberries, there is also a diffstat report for the most recent release.
If you like this or other open-source work I do, you can sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.