Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has a syntax deliberately close to Matlab, and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 1234 other packages on CRAN, downloaded 38.8 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 617 times according to Google Scholar.
Conrad released a new minor version 14.4.0 last month. That was preceding by several extensive rounds of reverse-dependency checks covering the 1200+ packages at CRAN. We eventually narrowed the impact down to just eight packages, and I opened issue #462 to manage the transition along with ‘GitHub-only’ release 14.4.0-0 of RcppArmadillo. Several maintainers responded very promptly and updated within days – this is truly appreciated. Yesterday the last package updated at CRAN coinciding nicely with our planned / intended upload to CRAN one month after the release. So this new release, at version -1, is now on CRAN. It brings the usual number of small improvements to Armadillo itself as well as updates to packaging.
The changes since the last CRAN release are summarised below.
Changes in RcppArmadillo version 14.4.0-1 (2025-03-17)
CRAN release having given a few packages time to catch-up to small upstream change as discussed and managed in #462
Updated bibliography, and small edits to sparse matrix vignette
Switched continuous integration action to r-ci with implicit bootstrap
Changes in RcppArmadillo version 14.4.0-0 (2025-02-17) (GitHub Only)
Upgraded to Armadillo release 14.4.0 (Filtered Espresso)
Faster handling of
pow()
andsquare()
withinaccu()
andsum()
expressionsFaster
sort()
andsort_index()
for complex matricesExpanded the field class with
.reshape()
and.resize()
member functionsMore efficient handling of compound expressions by
sum()
,reshape()
,trans()
Better detection of vector expressions by
pow()
,imag()
,conj()
The package generator helper function now supports additional DESCRIPTIONs
This release revealed a need for very minor changes for a handful reverse-dependency packages which will be organized via GitHub issue tracking
Courtesy of my CRANberries, there is a diffstat report relative to previous release. More detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the Rcpp R-Forge page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can sponsor me at GitHub.