What's new in Armadillo 7.200.1
Jun 6, 2016
- added .index_min() and .index_max()
- expanded ind2sub() to handle vectors of indices
- expanded sub2ind() to handle matrix of subscripts
- expanded expmat(), logmat() and sqrtmat() to optionally return a bool indicating success
- faster handling of compound expressions by vectorise()
New in Armadillo 7.100.3 (May 27, 2016)
- added erf(), erfc(), lgamma()
- added .head_slices() and .tail_slices() to subcube views
- spsolve() now requires SuperLU 5.2
- eigs_sym(), eigs_gen() and svds() now use a built-in reimplementation of ARPACK for real (non-complex) matrices; contributed by Yixuan Qiu
New in Armadillo 6.700.3 (Apr 5, 2016)
- added logmat() for calcuating the matrix logarithm
- added regspace() for generating vectors with regularly spaced elements
- added logspace() for generating vectors with logarithmically spaced elements
- added approx_equal() for determining approximate equality
- added trapz() for numerical integration
- expanded .save() and .load() with hdf5_binary_trans file type, to save/load data with columns transposed to rows
New in Armadillo 6.700.1 Test (Mar 28, 2016)
- added logmat() for calcuating the matrix logarithm
- added regspace() for generating vectors with regularly spaced elements
- added approx_equal() for determining approximate equality
New in Armadillo 6.600.4 (Mar 15, 2016)
- expanded sum(), mean(), min(), max() to handle cubes
- expanded Cube class to handle arbitrarily sized empty cubes (eg. 0x5x2)
- added shift() for circular shifts of elements
- added sqrtmat() for finding the square root of a matrix
- fix for gmm_diag when using Mahalanobis distance
New in Armadillo 6.600.1 Test (Feb 29, 2016)
- expanded sum(), mean(), min(), max() to handle cubes
- expanded Cube class to handle arbitrarily sized empty cubes (eg. 0x5x2)
New in Armadillo 6.500.2 Test (Jan 20, 2016)
- added conv2() for 2D convolution
- added stand-alone kmeans() function for clustering data
- extended conv() to optionally provide central convolution
- faster handling of multiply-and-accumulate by accu()
New in Armadillo 6.500.1 Test (Jan 18, 2016)
- added conv2() for 2D convolution
- added stand-alone kmeans() function for clustering data
- extended conv() to optionally provide central convolution
New in Armadillo 6.400 (Jan 13, 2016)
- expanded each_col(), each_row() and each_slice() to handle C++11 lambda functions
- added ind2sub() and sub2ind()
- fixes for corner cases in gmm_diag class
New in Armadillo 6.300 (Jan 13, 2016)
- expanded solve() to find approximate solutions for rank-deficient systems
- faster handling of non-contiguous submatrix views in compound expressions
- added .for_each() to Mat, Row, Col, Cube and field classes
- added rcond() for estimating the reciprocal condition number
- fixes for spsolve(), eigs_sym(), eigs_gen(), svds()
New in Armadillo 6.200 (Jan 13, 2016)
- expanded diagmat() to handle non-square matrices and arbitrary diagonals
- expanded trace() to handle non-square matrices
- correction for datum::Z_0 constant
New in Armadillo 6.100 (Jan 13, 2016)
- faster norm() and normalise() when using Intel MKL, ATLAS or OpenBLAS
- added Schur decomposition: schur()
- 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
- expanded join_slices() to handle joining cubes with matrices
New in Armadillo 5.600 (Jan 13, 2016)
- expanded .each_col() and .each_row() to handle out-of-place operations
- added .each_slice() for repeated matrix operations on each slice of a cube
- faster handling of compound expressions by join_rows() and join_cols()
New in Armadillo 5.500 (Jan 13, 2016)
- expanded object constructors and generators to handle size() based specification of dimensions
- faster handling of submatrix rows
- faster clamp()
- fixes for handling sparse matrices
New in Armadillo 5.400.3 (Sep 1, 2015)
- added find_unique() for finding indices of unique values
- added diff() for calculating differences between consecutive elements
- added cumprod() for calculating cumulative product
- added null() for finding the orthonormal basis of null space
- expanded interp1() to handle repeated locations
- expanded unique() to handle complex numbers
- faster flipud()
- faster row-wise cumsum()
- fix for k-means clustering in gmm_diag class
New in Armadillo 5.300.4 (Aug 13, 2015)
- added generalised Schur decomposition: qz()
- added .has_inf() and .has_nan()
- expanded interp1() to handle out-of-domain locations
- 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
- faster sparse sum()
- faster row-wise sum(), mean(), min(), max()
- updated physical constants to NIST 2014 CODATA values
- fixes for handling sparse submatrix views
- Armadillo can make use of GPUs by linking with NVIDIA NVBLAS (a GPU-accelerated implementation of BLAS),
- or by linking with AMD ACML (which can use GPUs via OpenCL)
New in Armadillo 5.200 (May 25, 2015)
- New features and enhancements:
- added orth() for finding the orthonormal basis of the range space of a matrix
- expanded element initialisation to handle nested initialiser lists (C++11)
- workarounds for bugs in GCC, Intel and MSVC C++ compilers
New in Armadillo 5.100 (May 11, 2015)
- added interp1() for 1D interpolation
- added .is_sorted() for checking whether a vector or matrix has sorted elements
- updated physical constants to NIST 2010 CODATA values
New in Armadillo 5.000.0 (Apr 14, 2015)
- 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
- sort_index() and stable_sort_index() have been placed 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
New in Armadillo 4.650.0 (Feb 18, 2015)
- Version 4.650 contains speedups and feature enhancements:
- 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
New in Armadillo 4.649 Pre 1 (Feb 17, 2015)
- Version 4.649 preview 1 contains speedups and feature enhancements:
- 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
New in Armadillo 4.600.2 (Jan 9, 2015)
- Contains speedups as well as better detection of ATLAS and OpenBLAS libraries.
New in Armadillo 4.600.0 (Dec 27, 2014)
- Version 4.600 contains speedups and feature enhancements.
- 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
New in Armadillo 4.599 Alpha (Dec 23, 2014)
- added .head() and .tail() to submatrix views
- faster matrix transposes within compound expressions
- faster accu() when compiling with -O3 -ffast-math -march=native (gcc and clang)
New in Armadillo 4.550.2 (Dec 19, 2014)
- Update 4.550.2 contains a workaround for a bug in GCC 4.4
New in Armadillo 4.550.0 (Nov 22, 2014)
- Changes:
- Added matrix exponential function: expmat()
- Faster .log_p() and .avg_log_p() functions in the gmm_diag class when compiling with OpenMP enabled
- Faster handling of in-place addition/subtraction of expressions with an outer product
New in Armadillo 4.500.0 (Oct 30, 2014)
- Changes:
- 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
New in Armadillo 4.450.0 (Sep 19, 2014)
- 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
New in Armadillo 4.400.0 (Aug 19, 2014)
- added gmm_diag class for statistical modelling using Gaussian Mixture Models;
- includes multi-threaded implementation of k-means and Expectation-Maximisation for parameter estimation
- added clamp() for clamping values to be between lower and upper limits
- expanded batch insertion constructors for sparse matrices to add values at repeated locations
- faster handling of subvectors by dot()
- faster handling of aliasing by submatrix views
New in Armadillo 4.320.2 (Aug 18, 2014)
- 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
New in Armadillo 4.319 Beta 1 (Jul 1, 2014)
- 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
New in Armadillo 4.300.2 (May 12, 2014)
- fix for detection of HDF5 library during automatic installation
- faster find()
New in Armadillo 4.300.0 (May 3, 2014)
- 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)
- cmake-based installer enables use of C++11 random number generator when using gcc 4.9+ in C++11 mode
New in Armadillo 4.200.0 (Apr 7, 2014)
- faster transpose of sparse matrices
- more efficient handling of aliasing during matrix multiplication
- faster inverse of matrices marked as diagonal
New in Armadillo 4.149 Alpha 1 (Mar 27, 2014)
- faster transpose of sparse matrices
- more efficient handling of aliasing during matrix multiplication
- faster inverse of matrices marked as diagonal
New in Armadillo 4.100.2 (Mar 7, 2014)
- fix for handling null vectors by normalise()
- fix for memory handling by sparse matrices
New in Armadillo 4.100.0 (Feb 28, 2014)
- 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
New in Armadillo 4.001 Alpha 3 (Feb 25, 2014)
- 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)
- added normalise() for normalising vectors to unit p-norm
- automatic SIMD vectorisation of elementary expressions (eg. matrix addition) when using Clang 3.4+ with -O3 optimisation
- faster handling of sparse submatrix views
New in Armadillo 4.000.4 (Feb 13, 2014)
- fix for randi() generating out-of-interval values
- fix for saving field objects
- workaround for a bug in the Intel compiler
New in Armadillo 4.000.3 (Feb 6, 2014)
- fix for randi() generating out-of-interval values
- fix for saving field objects
- workaround for a bug in the Intel compiler
New in Armadillo 4.000.1 (Jan 15, 2014)
- fix for randi() generating out-of-interval values
- workaround for a bug in the Intel compiler
New in Armadillo 4.000.0 (Jan 7, 2014)
- 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(), princomp(), rank(), svd(), svd_econ()
- the form inv(sympd(X)) no longer assumes that X is positive definite; use inv_sympd() instead
- added MEX connector for interfacing Octave/Matlab with Armadillo matrices (contributed by George Yammine)
New in Armadillo 3.995 Alpha 1 (Jan 3, 2014)
- 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(), princomp(), rank(), svd(), svd_econ()
- special handling of inv(sympd(X)) has been removed; use inv_sympd() instead
New in Armadillo 3.930.0 (Dec 7, 2013)
- 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
New in Armadillo 3.920.3 (Nov 22, 2013)
- fix for handling of tiny matrices by .swap()
- minor fix for linking with ATLAS
New in Armadillo 3.920.2 (Oct 14, 2013)
- minor fix for linking with ATLAS
New in Armadillo 3.920.0 (Sep 27, 2013)
- faster .zeros()
- faster round(), exp2() and log2() when using C++11
- added signum function: sign()
- added move constructors when using C++11
- added 2D fast Fourier transform: fft2()
- added .tube() for easier extraction of vectors and subcubes from cubes
- added specification of a fill type during construction of Mat, Col, Row and Cube classes, eg. mat X(4, 5, fill::zeros)
New in Armadillo 3.910.1 (Sep 11, 2013)
- minor fix for handling of complex matrices by braindead compilers (MSVC)
New in Armadillo 3.910.0 (Aug 13, 2013)
- Faster multiplication of a matrix with a transpose of itself, ie. X*X.t() and X.t()*X
- Added vectorise() for reshaping matrices into vectors
- Added all() and any() for indicating presence of elements satisfying a relational condition
New in Armadillo 3.900.7 (Aug 1, 2013)
- minor fix for inplace reshape()
- minor corrections for compilation issues under GCC 4.8+ and MSVC
New in Armadillo 3.900.4 (Jun 13, 2013)
- minor corrections for compilation issues under GCC 4.8+ and MSVC
New in Armadillo 3.900.3 (Jun 12, 2013)
- minor corrections for compilation issues under GCC 4.8+ and MSVC
New in Armadillo 3.900.0 (Jun 4, 2013)
- added automatic SSE2 vectorisation of elementary expressions (eg. matrix addition) when using GCC 4.7+ with -O3 optimisation
- added support for saving & loading of cubes in HDF5 format, contributed by Szabolcs Horvat
- faster median(), contributed by Ruslan Shestopalyuk
- faster handling of compound expressions with transposes of submatrix rows
- faster handling of compound expressions with transposes of complex vectors
New in Armadillo 3.820.1 (May 20, 2013)
- added detection of OpenBLAS during installation (OpenBLAS is a high performance implementation of BLAS, greatly speeding up matrix multiplication)
New in Armadillo 3.820.0 (May 13, 2013)
- faster as_scalar() for compound expressions
- faster transpose of small vectors
- faster matrix-vector product for small vectors
- faster multiplication of small fixed size matrices
New in Armadillo 3.819.0 (May 8, 2013)
- minor fix for initialisation of sparse matrices
- minor fix for linking with MKL on Ubuntu systems
New in Armadillo 3.810.1 (Apr 23, 2013)
- minor fix for linking with MKL on Ubuntu systems
New in Armadillo 3.810.0 (Apr 19, 2013)
- added fast Fourier transform: fft()
- added handling of .imbue() and .transform() by submatrices and subcubes
- added batch insertion constructors for sparse matrices
- minor fix for multiplication of complex sparse matrices
- better detection of recent Intel MKL versions during installation
New in Armadillo 3.800.2 (Mar 25, 2013)
- minor fix for installation on Mac OS X systems
New in Armadillo 3.800.1 (Mar 12, 2013)
- workaround for a bug in ATLAS 3.8 on 64 bit systems
- faster matrix-vector multiply for small matrices
New in Armadillo 3.800.0 (Mar 1, 2013)
- Armadillo is now licensed using the Mozilla Public License 2.0
- added .imbue() for filling a matrix/cube with values provided by a functor or lambda expression
- added .swap() for swapping contents with another matrix
- added .transform() for transforming a matrix/cube using a functor or lambda expression
- added round() for rounding matrix elements towards nearest integer
- faster find()
- fixes for handling non-square matrices by qr() and qr_econ()
- minor fixes for handling empty matrices
- reduction of pedantic compiler warnings
New in Armadillo 3.6.3 (Feb 20, 2013)
- faster find()
- minor fix for non-contiguous submatrix views to handle empty vectors of indices
- reduction of pedantic compiler warning
New in Armadillo 3.6.2 (Jan 29, 2013)
- faster determinant for matrices marked as diagonal or triangular
- more fine-grained handling of 64 bit integers
New in Armadillo 3.6.1 (Dec 17, 2012)
- faster trace()
- fix for handling sparse matrices by dot()
- fixes for interactions between sparse and dense matrices
New in Armadillo 3.6.0 (Dec 7, 2012)
- faster handling of compound expressions with submatrices and subcubes
- added support for loading matrices as text files with NaN and Inf elements
- added stable_sort_index(), which preserves the relative order of elements with equivalent values
- added handling of sparse matrices by mean(), var(), norm(), abs(), square(), sqrt()
- added saving and loading of sparse matrices in arma_binary format
New in Armadillo 3.4.4 (Nov 2, 2012)
- fix for handling complex numbers by sparse matrices
- fix for minor memory leak by sparse matrices
New in Armadillo 3.4.3 (Oct 3, 2012)
- fix for aliasing issue in diagmat()
- fix for speye() signature
- fixes for handling empty sparse matrices
- minor fixes for handling sparse submatrix views
- minor speedups for sparse matrices
- workaround for a bug in the Mac OS X accelerate framework
- added documentation for saving & loading matrices in HDF5 format
- faster dot() and cdot() for complex numbers
New in Armadillo 3.4.2 (Sep 25, 2012)
- minor fixes for handling sparse submatrix views
- minor speedups for sparse matrices
New in Armadillo 3.4.1 (Sep 18, 2012)
- workaround for a bug in the Mac OS X accelerate framework
- fixes for handling empty sparse matrices
- added documentation for saving & loading matrices in HDF5 format
- faster dot() and cdot() for complex numbers
New in Armadillo 3.4.0 (Sep 6, 2012)
- added economical QR decomposition: qr_econ()
- added .each_col() & .each_row() for vector operations repeated on each column or row
- added preliminary support for sparse matrices, contributed by Ryan Curtin et al. (Georgia Institute of Technology)
- faster singular value decomposition via divide-and-conquer algorithm
- faster .randn()
New in Armadillo 3.3.92 (Sep 4, 2012)
- faster singular value decomposition via "divide and conquer" algorithm
- faster .randn()
- added economical QR decomposition: qr_econ()
- added .each_col() & .each_row() for vector operations repeated on each column or row
- added preliminary support for sparse matrices, contributed by Ryan Curtin et al.
New in Armadillo 3.3.91 (Aug 30, 2012)
- faster singular value decomposition via "divide and conquer" algorithm
- economical QR decomposition: qr_econ()
- .each_col() & .each_row() for vector operations repeated on each column or row
- preliminary support for sparse matrices, contributed by Ryan Curtin, James Cline and Matthew Amidon (Georgia Institute of Technology)
New in Armadillo 3.2.4 (Jul 11, 2012)
- workaround for a regression (bug) in GCC 4.7.0 and 4.7.1
New in Armadillo 3.2.3 (Jun 29, 2012)
- minor correction for declaration of fixed size vectors and matrices
New in Armadillo 3.2.2 (Jun 1, 2012)
- minor fix for compiling without debugging enabled (aka release mode)
- better detection of ATLAS during installation on Fedora and Red Hat systems
New in Armadillo 3.2.1 (May 28, 2012)
- minor fix for compiling without debugging enabled (aka release mode)
New in Armadillo 3.2 (May 22, 2012)
- faster eigen decomposition via "divide and conquer" algorithm
- faster transpose of vectors and compound expressions
- faster handling of diagonal views
- faster handling of tiny fixed size vectors (≤ 4 elements)
- added unique(), for finding unique elements of a matrix
New in Armadillo 3.0.3 (May 3, 2012)
- fixes for inplace transpose of complex number matrices
- fixes for complex number version of svd_econ()
- fixes for potential aliasing issues with submatrix views
New in Armadillo 3.0.2 (Apr 19, 2012)
- fixes for handling diagonal matrices
New in Armadillo 3.0.1 (Apr 12, 2012)
- fixes for compilation errors
- fixes for potential aliasing issues
New in Armadillo 3.0.0 (Apr 10, 2012)
- added non-contiguous submatrix views
- added shorthand for inverse: .i()
- added hist() and histc()
- faster repmat()
- faster handling of submatrix views with one row or column
- faster generation of random numbers
- faster element access in fixed size matrices
- better detection of vector expressions by sum(), cumsum(), prod(), min(), max(), mean(), median(), stddev(), var()
- expressions X=A.i()*B and X=inv(A)*B are automatically converted to X=solve(A,B)
New in Armadillo 2.99.4 (Apr 4, 2012)
- fixes for handling expressions with fixed size matrices
New in Armadillo 2.99.3 (Apr 2, 2012)
- faster repmat()
- workarounds for braindead compilers (eg. Visual Studio)
New in Armadillo 2.99.2 (Mar 29, 2012)
- added .i()
- much faster handling of .col() and .row()
- expressions X=A.i()*B and X=inv(A)*B are automatically converted to X=solve(A,B)
New in Armadillo 2.99.1 (Mar 19, 2012)
- added non-contiguous submatrix views
- added hist() and histc()
- faster handling of submatrix views
- faster generation of random numbers
- faster element access in fixed size matrices
- better detection of vector expressions by sum(), cumsum(), prod(), min(), max(), mean(), median(), stddev(), var()
New in Armadillo 2.4.4 (Mar 5, 2012)
- fixes for qr() and syl()
- more portable wall_clock class
- faster relational operators on submatrices
New in Armadillo 2.4.2 (Dec 12, 2011)
- clarified documentation for .reshape()
- fix for handling of empty matrices by .resize()
New in Armadillo 2.4.1 (Dec 8, 2011)
- added .resize()
- fix for vector initialisation
New in Armadillo 2.4.0 (Dec 5, 2011)
- added shorter forms of transposes: .t() and .st()
- added optional use of 64 bit indices, allowing matrices to have more than 4 billion elements
- added experimental support for C++11 initialiser lists
- faster pinv()
- faster inplace transpose
- faster handling of expressions with diagonal views
- fixes for handling expressions with aliasing and submatrices
- fixes for linking on Ubuntu and Debian systems
- fixes for inconsistencies in interactions between matrices and cubes
- refactored code to eliminate warnings when using the Clang C++ compiler
- .print_trans() and .raw_print_trans() are deprecated
New in Armadillo 2.3.92 (Nov 28, 2011)
- fixes for linking on Ubuntu and Debian systems
- fixes for inconsistencies in interactions between matrices and cubes
New in Armadillo 2.3.91 (Nov 14, 2011)
- added shorter forms of transposes: .t() and .st()
- added optional use of 64 bit indices, allowing matrices to have more than 4 billion elements
- added experimental support for C++11 initialiser lists
- faster pinv()
- faster inplace transpose
- bugfixes for handling expressions with aliasing and submatrices
- refactored code to eliminate warnings when using the Clang C++ compiler
- .print_trans() and .raw_print_trans() are deprecated
New in Armadillo 2.2.3 (Aug 27, 2011)
- fix for speed issue in as_scalar()
New in Armadillo 2.2.1 (Aug 2, 2011)
- faster multiplication of small matrices
- faster trans()
- faster handling of submatrices by norm()
- added economical singular value decomposition: svd_thin()
- added circ_toeplitz()
- added .is_colvec() & .is_rowvec()
- fixes for handling of complex numbers by cov(), cor(), running_stat_vec
New in Armadillo 2.2.0 (Aug 2, 2011)
- faster multiplication of small matrices
- faster trans()
- faster handling of submatrices by norm()
- added economical singular value decomposition: svd_thin()
- added circ_toeplitz()
- added .is_colvec() & .is_rowvec()
- fixes for handling of complex numbers by cov() & running_stat_vec
New in Armadillo 2.1.91 (Jul 22, 2011)
- faster multiplication of small matrices
- faster trans()
- faster handling of submatrices by norm()
- added economical singular value decomposition: svd_thin()
- added circ_toeplitz()
- added .is_colvec() & .is_rowvec()
New in Armadillo 2.0.2 (Jul 16, 2011)
- fix for handling of conjugate transpose by as_scalar()
- fix for handling of aliasing by diagmat()
- fix for handling of empty matrices by symmatu()/symmatl()
New in Armadillo 2.0.0 (Jun 29, 2011)
- faster multiplication of tiny matrices (≤ 4x4)
- faster compound expressions containing submatrices
- faster inverse of symmetric positive definite matrices
- faster element access for fixed size matrices
- added handling of arbitrarily sized empty matrices (eg. 5x0)
- added loading & saving of matrices as CSV text files
- added .count() member function to running_stat and running_stat_vec
- added syl(), strans(), symmatu()/symmatl()
- added submatrices of submatrices
- det(), inv() and solve() can be forced to use more precise algorithms for tiny matrices (≤ 4x4)
- htrans() has been deprecated; use trans() instead
- API change: trans() now takes the complex conjugate when transposing a complex matrix
- API change: .is_vec() now outputs true for empty vectors (eg. 0x1)
- API change: forms of chol(), eig_sym(), eig_gen(), inv(), lu(), pinv(), princomp(), qr(), solve(), svd(), syl() that do not return a bool indicating success now throw std::runtime_error exceptions when failures are detected
- API change: princomp_cov() has been removed; princomp() in conjunction with cov() can be used instead
- API change: set_log_stream() & get_log_stream() have been replaced by set_stream_err1() & get_stream_err1()
New in Armadillo 1.99.5 (Jun 23, 2011)
- Forms of chol(), eig_sym(), eig_gen(), inv(), lu(), pinv(), princomp(), qr(), solve(), svd(), syl() that do not return a bool indicating success now throw std::runtime_error exceptions when failures are detected
- princomp_cov() has been removed; princomp() in conjunction with cov() can be used instead
- set_log_stream() & get_log_stream() have been replaced by set_stream_err1() & get_stream_err1()
- det(), inv() and solve() can be forced to use more precise algorithms for tiny matrices (≤ 4x4)
- Added loading & saving of matrices as CSV text files
New in Armadillo 1.99.4 (Jun 6, 2011)
- fixes for handling of tiny matrices
New in Armadillo 1.2.0 (Apr 18, 2011)
- Added ability to use Blas & Lapack libraries with capitalised function names
- Reduction of pedantic compiler warnings
New in Armadillo 1.1.92 (Mar 31, 2011)
- Bugfix in cor()
- Automatic installation now requires CMake >= 2.6
New in Armadillo 1.1.90 (Mar 23, 2011)
- Added .min() & .max(), which can provide the extremum's location
- More robust mean(), var(), stddev()
New in Armadillo 1.1.8 (Mar 10, 2011)
- Added floor() and ceil()
- Added “not a number”: math::nan()
- Added infinity: math::inf()
- Added standalone is_finite()
- Faster min(), max(), mean()
- Bugfix for a corner case with NaNs in min() and max()
New in Armadillo 1.1.6 (Mar 2, 2011)
- fixed size matrices and vectors can use auxiliary (external) memory
- .in_range() can use span() arguments
- subfields can use span() arguments
New in Armadillo 1.1.4 (Feb 19, 2011)
- Faster sort()
- Updated installation to detect recent versions of Intel's MKL
- Added interpretation of arbitrary "flat" subcubes as matrices
New in Armadillo 1.1.2 (Feb 2, 2011)
- Faster prod()
- Faster solve() for compound expressions
- Fix for compilation with GCC using the -std=c++0x mode
- Fix for matrix handling by subcubes
New in Armadillo 1.0.0 (Nov 23, 2010)
- After 2½ years of collaborative development, we are proud to release the 1.0 milestone version.
- Many thanks are extended to all contributors and bug reporters.
New in Armadillo 0.9.90 (Oct 14, 2010)
- Added unsafe_col()
- Speedups and bugfixes in lu()
- Minimization of pedantic compiler warnings
New in Armadillo 0.9.80 (Sep 21, 2010)
- Added join_slices(), insert_slices(), shed_slices()
- Added in-place operations on diagonals
- Various speedups due to internal architecture improvements
New in Armadillo 0.9.70 (Sep 1, 2010)
- Added template based size specification
- Added insertion of rows & columns
- Added deletion of rows & columns
- Added set_imag() & set_real()
- Added in_range()
- Added is_empty()
- Various speedups, mainly in expressions involving submatrices
- Fixes for a few corner cases
New in Armadillo 0.9.52 (Jul 14, 2010)
- Bugfixes for saving complex cubes
- Workarounds to remove warnings under certain dodgy compilers
New in Armadillo 0.9.50 (Jul 7, 2010)
- Faster compilation by omitting Boost where possible
- Faster insertion into submatrices
- More accurate linspace()
- Deprecated rand() in favour of randu()
- Modified load() & save() to print warnings
- Added quiet_load() & quiet_save()
- Added conversions to/from std::vector
- Added convolution operation: conv()
- Added toeplitz()
- Added detection of MKL & ACML during installation
- Added MSVC project files for compiling examples
New in Armadillo 0.9.10 (Jun 2, 2010)
- Speedups for find() and relational operators
- Speedups for expressions involving mixed matrix types
- More consistent success indication by decomposition functions
New in Armadillo 0.9.8 (May 14, 2010)
- Added handling of interactions between complex scalars and non-complex matrices
- Minor bugfixes for compilation issues under certain compilers
New in Armadillo 0.9.4 (Mar 16, 2010)
- Added cross()
- Bugfixes for inplace addition of particular vector multiplication expressions
New in Armadillo 0.9.2 (Mar 2, 2010)
- Minor speedups
- Added princomp_cov()
- Bugfixes in complex-number versions of several functions
New in Armadillo 0.6.12 (Jun 25, 2009)
- Added raw_print() and a collection of physical constants
- Code cleanup for better conformance to the C++ standard
- Workaround for NVIDIA's CUDA compiler
- Miscellaneous documentation and installation improvements
New in Armadillo 0.6.11 (May 20, 2009)
- more elaborate Mat class destructor for better debugging of user code
- bugfix for solve() when using complex numbers
- bugfix for documentation of sort() and sort_index()
- modified installation to check for version of Boost libraries
- cleaned up rpm spec file
New in Armadillo 0.6.8 (Apr 25, 2009)
- Better installation on Mac OS X.
New in Armadillo 0.6.6 (Apr 9, 2009)
- fields of strings can now loaded & saved as plain text files
- better handling of 64 bit systems, especially when using CMake 2.6
- bug fix for template detection of combined multiply and addition operations
New in Armadillo 0.6.4 (Apr 3, 2009)
- Added class for on-the-fly statistics. Renamed main classes for better code readability. Performance tweaks, which can result in speedups of 30% for small matrices.
New in Armadillo 0.6.2 (Mar 26, 2009)
- Fixes for interaction between matrices with different element types.
New in Armadillo 0.6.1 (Mar 25, 2009)
- Fixes for interaction between matrices with different element types.
New in Armadillo 0.6.0 (Mar 24, 2009)
- Added functionality:
- solve(), for solving systems of linear equations
- svd(), singular value decomposition
- expressions can now have mixed matrix types
- complex number versions of statistics functions
- reworked operators, providing more flexibility
- Bug fixes:
- sign of scalar produced by det()
- handling of single row and column submats by statistics functions
New in Armadillo 0.5.2 (Mar 11, 2009)
- Added functionality:
- subfields
- sort_index()
- Bug fixes:
- pow() applied to integer matrices (gcc < 4.3)
- multiplication of submats with a scalar
- division involving scalars
New in Armadillo 0.5.0 (Mar 10, 2009)
- Added functionality:
- Cholesky and QR decompositions
- element-wise division
- comparison operators
- more elegant restriction of template parameters
- Bug fixes:
- handling of diagonal matrices created from vectors
- compilation of examples under MacOS X
- Other changes:
- faster matrix inverse
- license change to LGPL v3+
- updated and re-arranged documentation
- easier installation when using the .tar.gz package
New in Armadillo 0.4.0 (Jan 29, 2009)
- easier configuration and installation
- statistics functions: mean, median, var, sd
- more functions for handling complex numbers: conj, cx_abs, htrans
- other functions: sort, dot, norm_dot, norm
New in Armadillo 0.3.0 (Jan 16, 2009)
- handling of complex numbers as well as other types
- added trigonometric functions