Another Matrix Library in C++


  • Useful for both console numerical applications development as well as large programs operating in graphics environment; works under Linux with g++ and MS Windows with Visual C++.
  • Library interface resembles Matlab/Octave language, which makes it a perfect tool if you wish to translate Matlab or Octave code to C++.
  • Vector (row and column) classes, generic dense and sparse matrices, special types of matrices including upper/lower triangular, symmetric, Hermitian and band.
  • Index checking as well as fast indexing without index checking; indexing with colon expressions (replicating Matlab/Octave. (s:i:e) functionality) as well as with arbitrary integer vectors/matrices.
  • Most Matlab and Octave matrix creation & manipulation functions like ones, zeros, randn, randn, diag, eye, fliplr, flipud, rot90, horzcat, vertcat, find, all, any and others.
  • Extensive sparse matrix support with fast sparse matrix manipulation routines.
  • Many mapper functions (computing function of each element).
  • Sums and products.
  • Natural way of writing matrix expressions through overloaded +, - and * operators; comparison and Boolean operators.
  • Kronecker product.
  • Trace & determinant. Vector and matrix norms.
  • Solving linear equations, handles special types of matrices; inverting matrices; solving sparse linear systems.
  • Dense and sparse LU and Cholesky decomposition, QR decomposition, SVD, Schur decomposition, QZ decomposition.
  • Extensive runtime checks and exception handling. (no assert).
  • C++ I/O streams (handling NaN's. and Inf's and comments) for numerical classes.
  • Formatted console, string and LATEX output.