armadillo
 
Armadillo
C++ linear algebra library

 
 
           

Get armadillo at SourceForge.net. Fast, secure and Free Open Source software downloads

About
License
 FAQ 
 Docs 
Speed
Contact
Download

  • Armadillo is an open-source C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use. Integer, floating point and complex numbers are supported, as well as a subset of trigonometric and statistics functions.
     
  • Various matrix decompositions are provided through optional integration with LAPACK, or one of its high performance drop-in replacements (such as the multi-threaded MKL or ACML libraries).
     
  • A delayed evaluation approach is employed (during compile time) to combine several operations into one and reduce (or eliminate) the need for temporaries. This is accomplished through recursive templates and template meta-programming.
     
  • This library is useful if C++ has been decided as the language of choice (due to speed and/or integration capabilities), rather than another language like Matlab ® or Octave. It is distributed under a license that is useful in both open-source and commercial contexts.
     
  • Armadillo is primarily developed at NICTA (Australia), with contributions from around the world.
     
  • Download latest version
     


NEWS

2011-12-15

Recent papers developed with the aid of Armadillo:
 

2011-12-12

Version 2.4.2

2011-12-05

Version 2.4.0   “Loco Lounge Lizard”
  • 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

2011-08-27

Version 2.2.3

2011-08-02

Version 2.2.1   “Blue Skies Debauchery”

2011-07-16

Version 2.0.2

2011-06-29

Version 2.0.0   “Carnivorous Sugar Glider”


↓ earlier news ↓
2011-04-18

Version 1.2.0   “Unscrupulous Carbon Emitter”
  • Added ability to use Blas & Lapack libraries with capitalised function names
  • Reduction of pedantic compiler warnings

2011-03-31

Version 1.1.92   “Jurassic Barbecue”
  • Bugfix in cor()
  • Automatic installation now requires CMake ≥ 2.6

2011-03-22

Version 1.1.90   “Inside Job”

2011-03-10

Version 1.1.8   “Kangaroo Steak”

2011-03-02

Version 1.1.6   “Baby Carpet Shark”

2011-02-18

Version 1.1.4   “Manta Lodge”
  • Faster sort()
  • Updated installation to detect recent versions of Intel's MKL
  • Added interpretation of arbitrary "flat" subcubes as matrices

2011-02-02

Version 1.1.2   “Flood Kayak”
  • Faster prod()
  • Faster solve() for compound expressions
  • Fix for compilation using GCC's C++0x mode
  • Fix for matrix handling by subcubes

2010-12-23

Version 1.1.0   “Climate Vandal”

2010-11-23

Version 1.0.0   “Antipodean Antileech”
  • 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

2010-11-11

Version 0.9.92   “Wall Street Gangster”
  • Fixes for compilation issues under the Intel C++ compiler
  • Added matrix norms

2010-10-14

Version 0.9.90   “Water Dragon”
  • Added unsafe_col()
  • Speedups and bugfixes in lu()
  • Minimisation of pedantic compiler warnings

2010-09-28

Overview Tech Report

2010-09-21

Version 0.9.80   “Chihuahua Muncher”

2010-09-01

Version 0.9.70   “Subtropical Winter Safari”

2010-08-04

Version 0.9.60   “Killer Bush Turkey”
  • More flexible reshape(), allowing significantly different matrix sizes
  • Added matrix initialisation via the << operator
  • Fixes for compilation issues under Mac OS X with GCC 4.2/4.0 hybrid

2010-07-14

Version 0.9.52   “Monkey Wrench”
  • Bugfixes for saving complex cubes
  • Workarounds to remove warnings under certain dodgy compilers

2010-07-07

Version 0.9.50   “Flying Spaghetti Monster”

2010-06-02

Version 0.9.10   “Chilli Espresso”
  • Speedups for find() and relational operators
  • Speedups for expressions involving mixed matrix types
  • More consistent success indication by decomposition functions

2010-05-14

Version 0.9.8   “Dog's Breakfast”
  • Added handling of interactions between complex scalars and non-complex matrices
  • Minor bugfixes for compilation issues under certain compilers

2010-04-28

Version 0.9.6   “Chimerican Climate Cabal”

2010-03-16

Version 0.9.4   “Cat Herder”
  • Added cross()
  • Bugfixes for inplace addition of particular vector multiplication expressions

2010-03-03

NICTA at CeBIT in Hannover
Armadillo is used in NICTA's face-based identity inference product demonstrators (part of the Advanced Surveillance project). See this page for more info on NICTA's presence at CeBIT.

2010-03-02

Version 0.9.2   “Cuban Cigar”
  • Minor speedups
  • Added princomp_cov()
  • Bugfixes in complex-number versions of several functions

2010-02-05

Version 0.9.0   “Retoxed Feral”
  • Extended and overhauled expression evaluation framework, for more efficient handling of compound expressions
  • There is a small but important API change -- see the docs for details
  • Added a conversion table between Matlab/Octave and Armadillo syntax
  • Added saving/loading of matrices using streams
  • Added log_det(), princomp(), fliplr(), flipud()
  • More accurate var() and stddev()

2010-01-27

Version 0.8.2   “Colombian Coffee”
  • Added as_scalar(), for forward compatibility with 0.9.x
  • Miscellaneous bugfixes

2009-12-14

Version 0.8.0   “Restless Critter”
  • Added pinv(), rank(), kron(), prod(), eps(), shuffle()
  • Added ‘running_stat_vec’ class, for on-the-fly statistics of vectors
  • Improvements and bugfixes in handling of submatrix views
  • Speedups for some compound expressions
  • Initial support for dodgy compilers

2009-10-26

Version 0.7.2   “Tequila Sunrise”
  • Added covariance and correlation functions
  • Added simpler form of lu()
  • Faster repmat() and reshape()
  • Better detection of external libraries during installation

2009-10-07

Version 0.7.0   “Unshackled Mongrel”
  • Added the Cube class (aka "3D matrix" or a set of matrices with contiguous memory)
  • Added creation of Mat instances using auxiliary memory
  • Added repmat()
  • Bugfixes for det() and lu()

2009-06-25

Version 0.6.12   “Ye Greene Beaste”
  • Added raw_print() and a collection of physical constants
  • Code cleanup for better conformance to the C++ standard
  • Miscellaneous documentation and installation improvements

2009-05-20

Version 0.6.11
  • Bug fix for solve() when using complex numbers
  • More elaborate class destructors for better debugging of user code
  • Miscellaneous documentation and installation improvements

2009-05-02

Version 0.6.10
  • Added eigen decomposition of generic (non-symmetric) matrices
  • Function eig() renamed to eig_sym()

2009-04-23

Version 0.6.8
  • Better installation on MacOS X
  • Colour PPM images can now be loaded as fields of matrices

2009-04-08

Version 0.6.6
  • Better installation on 64 bit systems, especially when using CMake 2.6
  • Fields of strings can be now loaded & saved as plain text files
  • Bug fix for template detection of combined multiply and addition operations

2009-04-02

Version 0.6.4
  • Added running_stat 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

2009-03-26

Version 0.6.2
Fixes for interactions between matrices with different element types

2009-03-24

Version 0.6.0
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

2009-03-11

Version 0.5.2
Added functionality:
  • subfields
  • sort_index()

Bug fixes:
  • pow() applied to integer matrices (gcc < 4.3)
  • multiplication of submats with a scalar
  • missing division operators


2009-03-09

Version 0.5.0
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


2009-01-28

Version 0.4.0
Bug fixes and added functionality:
  • easier configuration and installation
  • statistics functions
  • more functions for handling complex numbers

2009-01-16

Version 0.3.0
Added functionality:
  • handling of complex numbers as well as other types
  • added trigonometric functions

2008-12-23

Version 0.2.1
Fixes for several minor bugs.

2008-12-12

Version 0.2.0
More functionality, bug fixes and improved user documentation.

2008-11-04

Version 0.1.0
Initial proof-of-concept release.

©2008-2011

<a href="http://nicta.com.au/people/sandersonc">Conrad Sanderson</a> <a href="http://en.wikipedia.org/wiki/Armadillo_(C++_library)">Armadillo C++ Library</a> <a href="http://de.wikipedia.org/wiki/Armadillo_(C++-Bibliothek)">Armadillo C++ Bibliothek</a>