Armadillo es una biblioteca de álgebra lineal de alta calidad (matemáticas de matrices) para el lenguaje C++, que busca un buen equilibrio entre velocidad y facilidad de uso.
Características:
- Funciones y sintaxis fáciles de usar, deliberadamente similares a Matlab / Octave
- Útil para prototipar directamente en C++
- Útil para la conversión de código de investigación en entornos de producción
- Licencia permisiva - se puede usar en software y productos propietarios
- Utilizado para aprendizaje automático, reconocimiento de patrones, visión por computadora, procesamiento de señales, bioinformática, estadísticas, finanzas, etc.
- Clases eficientes para vectores, matrices, cubos (tensores de 1ª, 2ª, 3ª orden)
- Soporta matrices densas y dispersas
- Descomposición en valores singulares (SVD), descomposición en valores propios, QR, LU, Cholesky, FFT rápidas
- Agrupamiento utilizando k-means y Modelos de Mezcla Gaussiana (GMM)
- Vectorización automática de expresiones (SIMD)
- Submatrices contiguas y no contiguas
- Combina automáticamente varias operaciones en una para aumentar la velocidad y eficiencia
- Leer/escribir datos en archivos CSV
- Utiliza automáticamente OpenMP para aceleraciones
- Utilizado para aprendizaje automático por MLPACK
- Utilizado para optimización numérica por Ensmallen