Version 6.200.4 contains bug fixes for sparse eigen decomposition.

Available from http://arma.sourceforge.net/download.html

Version 6.200 contains feature enhancements and minor bug fixes.

Available from http://arma.sourceforge.net/download.html

- expanded diagmat() to handle non-square matrices and arbitrary diagonals
- expanded trace() to handle non-square matrices
- correction for datum::Z_0 constant

Version 6.100 contains new features, speedups and enhancements.

Available from http://arma.sourceforge.net/download.html

Changes since version 5.000:

- faster norm() and normalise() when using Intel MKL, ATLAS or OpenBLAS
- faster handling of submatrix rows
- faster clamp()
- faster flipud()
- faster row-wise sum(), cumsum() mean(), min(), max()
- faster sparse sum()
- faster handling of compound expressions by join_rows() and join_cols()
- added Schur decomposition: schur()
- added generalised Schur decomposition: qz()
- added .has_inf() and .has_nan()
- added orth() for finding the orthonormal basis of range space
- added null() for finding the orthonormal basis of null space
- added .each_slice() for repeated matrix operations on each slice of a cube
- added find_unique() for finding indices of unique values
- added diff() for calculating differences between consecutive elements
- added cumprod() for calculating cumulative product
- added interp1() for 1D interpolation
- added .is_sorted() for checking whether a vector or matrix has sorted elements
- expanded join_slices() to handle joining cubes with matrices
- expanded .each_col() and .each_row() to handle out-of-place operations
- expanded sparse matrix class with .set_imag() and .set_real()
- expanded imag(), real() and conj() to handle sparse matrices
- expanded diagmat(), reshape() and resize() to handle sparse matrices
- expanded unique() to handle complex numbers
- expanded object constructors and generators to handle size() based specification of dimensions
- expanded element initialisation to handle nested initialiser lists (C++11)
- fix for k-means clustering in gmm_diag class
- fixes for handling sparse matrices & sparse submatrix views
- stricter handling of matrix objects by hist() and histc()
- advanced constructors for using auxiliary memory now have the default of strict = false
- Cube class now delays allocation of .slice() related structures until needed
- updated physical constants to NIST 2014 CODATA values
- workarounds for bugs in GCC, Intel and MSVC C++ compilers

Version 5.000 contains new features and enhancements.

Available from http://arma.sourceforge.net

- added spsolve() for solving sparse systems of linear equations
- added svds() for singular value decomposition of sparse matrices
- added nonzeros() for extracting non-zero values from matrices
- added handling of diagonal views by sparse matrices
- expanded repmat() to handle sparse matrices
- expanded join_rows() and join_cols() to handle sparse matrices
- placed sort_index() and stable_sort_index() in the delayed operations framework for increased efficiency
- use of 64 bit integers is automatically enabled when using a C++11 compiler
- workaround for a bug in recent releases of Apple Xcode
- workaround for a bug in LAPACK 3.5

Version 4.650 contains speedups and feature enhancements.

Available from http://arma.sourceforge.net

- added randg() for generating random values from gamma distributions (C++11 only)
- added .head_rows() and .tail_rows() to submatrix views
- added .head_cols() and .tail_cols() to submatrix views
- expanded eigs_sym() to optionally calculate eigenvalues with smallest/largest algebraic values
- fixes for handling of sparse matrices

Version 4.600 contains speedups and feature enhancements.

Available from http://arma.sourceforge.net

- added .head() and .tail() to submatrix views
- faster matrix transposes within compound expressions
- faster accu() and norm() when compiling with -O3 -ffast-math -march=native (gcc and clang)
- workaround for a bug in the gcc 4.4 compiler

Version 4.550 contains speedups and feature enhancements.

Available from http://arma.sourceforge.net

- added matrix exponential function: expmat()
- faster .log_p() and .avg_log_p() functions in the gmm_diag class
- faster handling of in-place addition/subtraction of expressions with an outer product

Version 4.500 contains speedups and feature enhancements.

Available from http://arma.sourceforge.net

- faster handling of complex vectors by norm()
- expanded chol() to optionally specify output matrix as upper or lower triangular
- better handling of non-finite values when saving matrices as text files

Version 4.450 contains speedups and feature enhancements.

Available from http://arma.sourceforge.net

- faster handling of matrix transposes within compound expressions
- expanded symmatu()/symmatl() to optionally disable taking the complex conjugate of elements
- expanded sort_index() to handle complex vectors
- expanded the gmm_diag class with functions to generate random samples

Version 4.400 contains speedups and feature enhancements.

Available from http://arma.sourceforge.net

- faster handling of subvectors by dot()
- faster handling of aliasing by submatrix views
- expanded batch insertion constructors for sparse matrices to add values at repeated locations
- added clamp() for clamping values to be between lower and upper limits
- added gmm_diag class for statistical modelling using Gaussian Mixture Models; includes multi-threaded (parallelised) implementation of k-means and Expectation-Maximisation for parameter estimation

Version 4.320 contains enhancements and speedups.

Available from http://arma.sourceforge.net

- expanded eigs_sym() and eigs_gen() to use an optional tolerance parameter
- expanded eig_sym() to automatically fall back to standard decomposition method if divide-and-conquer fails
- automatic installer enables use of C++11 random number generator when using gcc 4.8.3+ in C++11 mode

Version 4.300 contains enhancements and speedups.

Available from http://arma.sourceforge.net

- faster *find()*

- added *find_finite()* and *find_nonfinite()* for finding indices of finite and non-finite elements

- expressions *X=inv(A) * B * C* and *X=A.i() * B * C* are automatically converted to *X=solve(A,B*C)*

Version 4.200 contains enhancements and speedups.

Available from http://arma.sourceforge.net

- faster transpose of sparse matrices

- more efficient handling of aliasing during matrix multiplication

- faster inverse of matrices marked as diagonal

Version 4.100 contains new functionality and enhancements.

Available from http://arma.sourceforge.net

- added normalise() for normalising vectors to unit p-norm

- extended the field class to handle 3D layout

- extended eigs_sym() and eigs_gen() to obtain eigenvalues of various forms (eg. largest or smallest magnitude)

- automatic SIMD vectorisation of elementary expressions (eg. matrix addition) when using Clang 3.4+ with -O3 optimisation

- faster handling of sparse submatrix views

- workaround for a bug in LAPACK 3.4 ... read more

Version 4.000 contains new functionality and enhancements.

Available from http://arma.sourceforge.net

- added eigen decompositions of sparse matrices: eigs_sym() and eigs_gen()

- added eigen decomposition for pair of matrices: eig_pair()

- added simpler forms of eig_gen()

- added condition number of matrices: cond()

- expanded find() to handle cubes

- expanded subcube views to access elements specified in a vector

- template argument for running_stat_vec expanded to accept vector types

- more robust fast inverse of 4x4 matrices

- faster divide-and-conquer decompositions are now used by default for eig_sym(), pinv(), rank(), svd(), svd_econ()

- added MEX connector for interfacing Octave/Matlab with Armadillo matrices

The 3.930 update has numerous enhancements:

- added divide-and-conquer variant of svd_econ(), for faster SVD

- added divide-and-conquer variant of pinv(), for faster pseudo-inverse

- added element-wise variants of min() and max()

- added size() based specifications of submatrix view sizes

- added randi() for generating matrices with random integer values

- added more intuitive specification of sort direction in sort() and sort_index()

- added more intuitive specification of method in det(), .i(), inv() and solve()

- added more precise timer for the wall_clock class when using C++11 ... read more

This release adds functions for 2D fast Fourier transform and various speedups when using C++11. It also adds functions for easier extraction of vectors and subcubes from cubes.

Available from http://arma.sourceforge.net

This release has faster multiplication of matrices with their corresponding transposes. It also adds functions for indicating the presence of elements satisfying a relational condition.

Armadillo is a fast C++ matrix library, available from http://arma.sourceforge.net/

This release adds automatic vectorisation (eg. SSE2) of elementary expressions (eg. matrix addition) when using GCC 4.7+ with -O3 optimisation. It also adds detection of OpenBLAS during installation. OpenBLAS is a high performance (parallelised) implementation of BLAS, greatly speeding up matrix multiplication, etc.

Armadillo is a fast C++ matrix library, available from http://arma.sourceforge.net/ ... read more

This release has various speedups for handling of small vectors and fixed-size matrices.

Armadillo is a fast C++ matrix library linking with LAPACK or high-speed LAPACK replacements, such as the multi-threaded Intel MKL. Available from http://arma.sourceforge.net/

This release adds the fast Fourier transform (FFT), as well as batch insertion constructors for sparse matrices. Detection of recent versions of Intel MKL has been improved. It also contains fixes for handling sparse matrices.

Armadillo is a fast C++ matrix library linking with LAPACK or high-speed LAPACK replacements, such as the multi-threaded Intel MKL. Available from http://arma.sourceforge.net/

Armadillo is now licensed using Mozilla Public License 2.0. This release adds functions for filling and transforming matrices via functors and lambda expressions. It also contains fixes for handling non-square matrices by qr() and qr_econ().

Armadillo is a fast C++ matrix library linking with LAPACK or high-speed LAPACK replacements, such as the multi-threaded Intel MKL. Available from http://arma.sourceforge.net/

Version 3.6 contains faster handling of submatrices and subcubes. It also expands the functionality of sparse matrices.

Armadillo is a fast C++ matrix library linking with LAPACK or high-speed LAPACK replacements such as Intel MKL. Available from http://arma.sourceforge.net/

Version 3.2 contains faster eigen decomposition, as well as faster handling of diagonal views, fixed size vectors and transposes.

Armadillo is a fast C++ matrix library with optional interfaces to LAPACK, MKL, ACML and ATLAS functions. Available from http://arma.sourceforge.net/

Armadillo is a fast C++ matrix library with optional interfaces to LAPACK and ATLAS functions. Available from http://arma.sourceforge.net/

Version 2.0 is the new stable release. It contains speedups and added functionality.