Armadillo: An Efficient Framework for Numerical Linear Algebra
Conrad Sanderson, Ryan Curtin

TL;DR
Armadillo is a C++ library that simplifies writing efficient linear algebra code by providing an intuitive interface and employing expression optimizations, bridging the gap between rapid prototyping and production-level performance.
Contribution
The paper introduces Armadillo, a C++ linear algebra library with expression optimizations using template metaprogramming for efficient production deployment.
Findings
Significant efficiency gains in benchmark linear algebra expressions
Ease of use comparable to high-level languages like MATLAB
Effective translation of high-level expressions into optimized C++ code
Abstract
A major challenge in the deployment of scientific software solutions is the adaptation of research prototypes to production-grade code. While high-level languages like MATLAB are useful for rapid prototyping, they lack the resource efficiency required for scalable production applications, necessitating translation into lower level languages like C++. Further, for machine learning and signal processing applications, the underlying linear algebra primitives, generally provided by the standard BLAS and LAPACK libraries, are unwieldy and difficult to use, requiring manual memory management and other tedium. To address this challenge, the Armadillo C++ linear algebra library provides an intuitive interface for writing linear algebra expressions that are easily compiled into efficient production-grade implementations. We describe the expression optimisations we have implemented in Armadillo,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsMatrix Theory and Algorithms
