May 22nd, 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
May 3rd, 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
April 19th, 2012· fixes for handling diagonal matrices
April 12th, 2012· fixes for compilation errors
· fixes for potential aliasing issues
April 10th, 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)
April 4th, 2012· fixes for handling expressions with fixed size matrices
April 2nd, 2012· faster repmat()
· workarounds for braindead compilers (eg. Visual Studio)
March 29th, 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)
March 19th, 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()
March 5th, 2012· fixes for qr() and syl()
· more portable wall_clock class
· faster relational operators on submatrices
December 12th, 2011· clarified documentation for .reshape()
· fix for handling of empty matrices by .resize()
December 8th, 2011· added .resize()
· fix for vector initialisation
December 5th, 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
November 28th, 2011· fixes for linking on Ubuntu and Debian systems
· fixes for inconsistencies in interactions between matrices and cubes
November 14th, 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
August 27th, 2011· fix for speed issue in as_scalar()
August 2nd, 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
August 2nd, 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
July 22nd, 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()
July 16th, 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()
June 29th, 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()
June 23rd, 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
June 6th, 2011· fixes for handling of tiny matrices
April 18th, 2011· Added ability to use Blas & Lapack libraries with capitalised function names
· Reduction of pedantic compiler warnings
March 31st, 2011· Bugfix in cor()
· Automatic installation now requires CMake >= 2.6
March 23rd, 2011· Added .min() & .max(), which can provide the extremum's location
· More robust mean(), var(), stddev()
March 10th, 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()
March 2nd, 2011· fixed size matrices and vectors can use auxiliary (external) memory
· .in_range() can use span() arguments
· subfields can use span() arguments
February 19th, 2011· Faster sort()
· Updated installation to detect recent versions of Intel's MKL
· Added interpretation of arbitrary "flat" subcubes as matrices
February 2nd, 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
November 23rd, 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.
October 14th, 2010· Added unsafe_col()
· Speedups and bugfixes in lu()
· Minimization of pedantic compiler warnings
September 21st, 2010· Added join_slices(), insert_slices(), shed_slices()
· Added in-place operations on diagonals
· Various speedups due to internal architecture improvements
September 1st, 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
July 14th, 2010· Bugfixes for saving complex cubes
· Workarounds to remove warnings under certain dodgy compilers
July 7th, 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
June 2nd, 2010· Speedups for find() and relational operators
· Speedups for expressions involving mixed matrix types
· More consistent success indication by decomposition functions
May 14th, 2010· Added handling of interactions between complex scalars and non-complex matrices
· Minor bugfixes for compilation issues under certain compilers
March 16th, 2010· Added cross()
· Bugfixes for inplace addition of particular vector multiplication expressions
March 2nd, 2010· Minor speedups
· Added princomp_cov()
· Bugfixes in complex-number versions of several functions
June 25th, 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
May 20th, 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
April 25th, 2009· Better installation on Mac OS X.
April 9th, 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
April 3rd, 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.
March 26th, 2009· Fixes for interaction between matrices with different element types.
March 25th, 2009· Fixes for interaction between matrices with different element types.
March 24th, 2009Added 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
March 11th, 2009Added functionality:
· subfields
· sort_index()
Bug fixes:
· pow() applied to integer matrices (gcc < 4.3)
· multiplication of submats with a scalar
· division involving scalars
March 10th, 2009Added 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
January 29th, 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
January 16th, 2009· handling of complex numbers as well as other types
· added trigonometric functions