Armadillo: An Efficient Framework for Numerical Linear Algebra

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Sanderson, Conrad, Curtin, Ryan
Format: Preprint
Publié: 2025
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866915697240571904
author Sanderson, Conrad
Curtin, Ryan
author_facet Sanderson, Conrad
Curtin, Ryan
contents 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, exploiting template metaprogramming. We demonstrate that these optimisations result in considerable efficiency gains on a variety of benchmark linear algebra expressions.
format Preprint
id arxiv_https___arxiv_org_abs_2502_03000
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Armadillo: An Efficient Framework for Numerical Linear Algebra
Sanderson, Conrad
Curtin, Ryan
Mathematical Software
68N99, 65Y04, 65Y15, 65F45
G.4; G.1.3; D.2.3; F.2.1
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, exploiting template metaprogramming. We demonstrate that these optimisations result in considerable efficiency gains on a variety of benchmark linear algebra expressions.
title Armadillo: An Efficient Framework for Numerical Linear Algebra
topic Mathematical Software
68N99, 65Y04, 65Y15, 65F45
G.4; G.1.3; D.2.3; F.2.1
url https://arxiv.org/abs/2502.03000