2016
DOI: 10.21105/joss.00026
|View full text |Cite
|
Sign up to set email alerts
|

Armadillo: a template-based C++ library for linear algebra

Abstract: The C++ language is often used for implementing functionality that is performance and/or resource sensitive. While the standard C++ library provides many useful algorithms (such as sorting), in its current form it does not provide direct handling of linear algebra (matrix maths).Armadillo is an open source linear algebra library for the C++ language, aiming towards a good balance between speed and ease of use. Its high-level application programming interface (function syntax) is deliberately similar to the wid… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
350
0
4

Year Published

2017
2017
2022
2022

Publication Types

Select...
4
4
1

Relationship

1
8

Authors

Journals

citations
Cited by 560 publications
(354 citation statements)
references
References 2 publications
0
350
0
4
Order By: Relevance
“…The gmm_diag and gmm_full classes are included in version 7.960 of the Armadillo C++ library (Sanderson and Curtin 2016), with the underlying mathematical details described in (Sanderson and Curtin 2017). The documentation for the classes is available online 1 .…”
Section: Resultsmentioning
confidence: 99%
“…The gmm_diag and gmm_full classes are included in version 7.960 of the Armadillo C++ library (Sanderson and Curtin 2016), with the underlying mathematical details described in (Sanderson and Curtin 2017). The documentation for the classes is available online 1 .…”
Section: Resultsmentioning
confidence: 99%
“…An example is the use of C++ matrix algebra libraries like Armadillo (Sanderson and Curtin, 2016) or Eigen (Guennebaud et al, 2012). By outsourcing complex linear algebra operations to matrix libraries, the need to directly call functions within Linear Algebra PACKage (LAPACK) (Anderson et al, 1999) is negated.…”
Section: # Function Declarationmentioning
confidence: 99%
“…Here, we demonstrate how to take advantage of the Armadillo linear algebra template classes (Sanderson and Curtin, 2016) via the RcppArmadillo package (Eddelbuettel and Sanderson, 2014;. Prior to running this example, the RcppArmadillo package must be installed using install.packages( RcppArmadillo ).…”
Section: Compute Rng Draws From a Multivariate Normalmentioning
confidence: 99%
“…For this reason, a number of wrappers have been developed to provide programmers with a simplest API to such functionalities; the most popular are summarised in the bottom row of Table 1. These tools usually provide a much larger catalogue of functions than those we considered here as basic and advanced Linear Algebra, like sorting, slicing, cumulative summing on arrays and more [13], which are outside the scope of this work. Notice that, some of the libraries reported in Table 1 The present work is aimed to fill two main gaps in the landscape of high-performance linear algebra libraries: apart from ArrayFire (for which this functionality has been published during the late phase of development of this work), none of the presented tools is able to switch the computing back-end at run-time, since they usually need a custom installation mapping to specific libraries or at least a recompilation of the user code; moreover other highlevel tools claiming to be able to exploit GPU capabilities, including those mentioned above for other languages, usually refer only to BLAS functionalities, whereas the LAPACK tier is computed on the CPU only.…”
Section: Related Workmentioning
confidence: 99%