Tue, 18 Mar 2025

RcppArmadillo 14.4.0-1 on CRAN: New Upstream

armadillo image

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() and square() within accu() and sum() expressions

    • Faster sort() and sort_index() for complex matrices

    • Expanded the field class with .reshape() and .resize() member functions

    • More 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.

/code/rcpp | permanent link