Menu

Armadillo / News: Recent posts

Armadillo C++ linear algebra lib: 15.2.3 maintenance release

Armadillo 15.2.3 is a maintenance release.
Download: https://arma.sourceforge.net/download.html
Changes since 15.2.2:
- faster .resize() for vectors
- faster repcube()

Prohibition on use of large language models (LLMs) in Armadillo.
- The Armadillo codebase has been developed entirely without the use of LLMs. We do not accept any code which has been created (directly or indirectly) with the aid of LLMs. This is due to issues with code provenance and low quality of LLM generated code.

Posted by Conrad Sanderson 2025-12-16

Armadillo C++ linear algebra lib: 15.2.2 bug fix release

Armadillo 15.2.2 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 15.2.1:
- improved reproducibility of random number generation when using OpenMP
- improved documentation

Posted by Conrad Sanderson 2025-11-20

Bandicoot GPU C++ linear algebra lib: 3.0

Bandicoot is the GPU enabled counterpart to Armadillo.
Bandicoot provides many linear operations directly on GPUs, providing the same APIs as Armadillo.
Version 3.0 contains numerous feature enhancements and fixes.
Download: https://coot.sourceforge.io/download.html
Git repo: https://gitlab.com/bandicoot-lib/bandicoot-code

Changes since 2.0:
- optimisations and simplifications for on-demand kernel compilation
- kernels are now compiled on-demand instead of all at once
- fix backend initialization with CUDA toolkit version 13
- add support for CLBlast as a BLAS implementation for the OpenCL backend
- initial support for fp16 half-precision type
- bugfix for copy and move operators for Cube and Mat aliases
- bugfix for diagmat() matrix multiplication on subviews
- bugfixes for warnings in OpenCL and CUDA kernels
- fixes for OpenCL+OpenMP compilation
- add support for char/short matrices and convenience u8/s8/u16/s16 typedefs
- add standalone replace() function
- add .replace() member function for matrices and cubes
- add .is_finite() member function for matrices and cubes
- add .has_inf() member function for matrices and cubes
- add .has_nan() member function for matrices and cubes
- add .copy_size() member function for matrices and cubes
- add min() and max() for cubes
- add index_min() and index_max() for cubes
- add constructors for Mat, Col, and Row that accept strings and std::vectors
- add element initialisation to handle nested initialiser lists

Posted by Conrad Sanderson 2025-11-17

Armadillo C++ linear algebra lib: 15.2.1 maintenance release

Armadillo 15.2.1 is a maintenance release.
Download: https://arma.sourceforge.net/download.html
Changes since 15.2.0
- faster handling of submatrices with one row

Posted by Conrad Sanderson 2025-10-28

Armadillo C++ linear algebra lib: 15.2

Armadillo 15.2 contains feature enhancements and speedups.
Download: https://arma.sourceforge.net/download.html
Changes since 15.0:
- added rande() for generating matrices with elements from exponential distributions
- shift() has been deprecated in favour of circshift(), for consistency with Matlab/Octave
- reworked detection of aliasing, leading to more efficient compiled code

Posted by Conrad Sanderson 2025-10-20

Armadillo C++ linear algebra lib: 15.0.3 bug fix release

Armadillo 15.0.3 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 15.0.2:
- fix superfluous deprecation warning in hist()
- fix potential loss of precision when saving single-precision matrices as CSV files

Posted by Conrad Sanderson 2025-09-22

Armadillo C++ linear algebra lib: 15.0.2 maintenance release

Armadillo 15.0.2 is a maintenance release.
Download: https://arma.sourceforge.net/download.html
Changes since 15.0.1:
- optionally use OpenMP parallelisation for fp16 matrix multiplication
- faster vectorisation of cube tubes

Posted by Conrad Sanderson 2025-09-08

Armadillo C++ linear algebra lib: 15.0.1 bug fix release

Armadillo 15.0.1 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 15.0.0:
- workaround for GCC compiler bug involving misoptimisation of complex number multiplication

Posted by Conrad Sanderson 2025-08-22

Armadillo C++ linear algebra lib: 15.0

Armadillo 15.0 contains feature enhancements.
Download: https://arma.sourceforge.net/download.html
Changes since 14.6:
- C++14 is now the minimum required C++ standard
- added preliminary support for matrices with half-precision fp16 element type
- added second form of cond() to allow detection of failures
- added repcube()
- added .freeze() and .unfreeze() member functions to wall_clock
- extended conv() and conv2() to accept the "valid" shape argument

Posted by Conrad Sanderson 2025-08-21

Armadillo C++ linear algebra lib: 14.6.3 bug fix release

Armadillo 14.6.3 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.6.2:
- fix OpenMP related crashes in Cube::slice() on Arm64 CPUs (used in Apple Silicon and Raspberry Pi)

Posted by Conrad Sanderson 2025-08-14

Armadillo C++ linear algebra lib: 14.6.2 bug fix release

Armadillo 14.6.2 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.6.1:
- fix for corner-case speed regression in sum()
- better handling of OpenMP in omit_nan() and omit_nonfinite()

Posted by Conrad Sanderson 2025-08-08

Armadillo C++ linear algebra lib: 14.6.1 bug fix release

Armadillo 14.6.1 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.6.0:
- fix for speed regression in mean()
- fix for detection of compiler configuration
- improved documentation

Posted by Conrad Sanderson 2025-07-21

Armadillo C++ linear algebra lib: 14.6

Armadillo 14.6 contains feature enhancements.
Download: https://arma.sourceforge.net/download.html
Changes since 14.4:
- added balance() to transform matrices so that column and row norms are roughly the same
- added omit_nan() and omit_nonfinite() to extract elements while omitting NaN and non-finite values
- added find_nonnan() for finding indices of non-NaN elements
- added standalone replace() function

Posted by Conrad Sanderson 2025-07-02

Armadillo C++ linear algebra lib: 14.4.3 bug fix release

Armadillo 14.4.3 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.4.2:
- fix for several corner cases involving handling of non-finite elements by sparse matrices

Posted by Conrad Sanderson 2025-05-21

Armadillo C++ linear algebra lib: 14.4.2 bug fix release

Armadillo 14.4.2 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.4.1:
- fix for expmat()
- added support for SuperLU 7.0
- workaround for bugs in clang 20 compiler

Posted by Conrad Sanderson 2025-04-25

Armadillo C++ linear algebra lib: 14.4.1 bug fix release

Armadillo 14.4.1 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.4.0:
- fix for fft() and ifft() when using FFTW3 in multi-threaded contexts (such as OpenMP)
- improved documentation

Posted by Conrad Sanderson 2025-03-25

Armadillo C++ linear algebra lib: 14.4

Armadillo 14.4 contains speedups and feature enhancements.
Download: https://arma.sourceforge.net/download.html
Changes since 14.2:
- 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()

Posted by Conrad Sanderson 2025-02-17

Armadillo C++ linear algebra lib: 14.2.3 bug fix release

Armadillo 14.2.3 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.2.2:
- minor fix for declaration of xSYCON and xHECON functions in LAPACK
- fix for rare corner-case in reshape()

Posted by Conrad Sanderson 2025-02-04

Armadillo C++ linear algebra lib: 14.2.2 bug fix release

Armadillo 14.2.2 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.2.1:
- workarounds for regressions in pre-release versions of GCC 15
- more selective detection of symmetric/hermitian matrices by various functions

Posted by Conrad Sanderson 2024-12-06

Armadillo C++ linear algebra lib: 14.2.1 bug fix release

Armadillo 14.2.1 is a bug fix release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.2.0:
- fix for index_min() and index_max() to ensure that the first index of equal extremum values is found

Posted by Conrad Sanderson 2024-11-24

Armadillo C++ linear algebra lib: 14.2

Armadillo 14.2 contains speedups and feature enhancements.
Download: https://arma.sourceforge.net/download.html
Changes since 14.0:
- faster handling of symmetric matrices by inv(), rcond(), powmat()
- faster handling of hermitian matrices by inv(), rcond(), powmat(), cond(), pinv(), rank()
- added solve_opts::force_sym option to solve() to force use of the symmetric/hermitian solver (not limited to sympd matrices)
- more efficient handling of compound expressions by solve()

Posted by Conrad Sanderson 2024-11-16

Armadillo C++ linear algebra lib: 14.0.2 maintenance release

Armadillo 14.0.2 is a maintenance release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.0.1:
- optionally use C++20 memory alignment

Posted by Conrad Sanderson 2024-08-06

Armadillo C++ linear algebra lib: 14.0.1 maintenance release

Armadillo 14.0.1 is a maintenance release.
Download: https://arma.sourceforge.net/download.html
Changes since 14.0.0:
- minor corrections for several corner-cases

Posted by Conrad Sanderson 2024-07-07

Armadillo C++ linear algebra lib: 14.0

Armadillo 14.0 contains speedups and feature enhancements.
Download: https://arma.sourceforge.net/download.html
Changes since 12.8:
- C++14 is now the minimum recommended C++ standard
- faster handling of compound expressions by as_scalar(), accu(), dot()
- faster interactions between sparse and dense matrices
- expanded stddev() to handle sparse matrices
- expanded relational operators to handle expressions between sparse matrices and scalars
- added .as_dense() to obtain dense vector/matrix representation of any sparse matrix expression
- updated physical constants to NIST 2022 CODATA values

Posted by Conrad Sanderson 2024-06-25

Armadillo C++ linear algebra lib: 12.8.4 maintenance release

Armadillo 12.8.4 is a maintenance release.
Download: https://arma.sourceforge.net/download.html
Changes since 12.8.3:
- faster handling of sparse submatrix views

Posted by Conrad Sanderson 2024-05-30