IT ++ - IT++
Lanzamiento estable | 4.3.1 / 6 de julio de 2013
|
---|---|
Escrito en | C ++ |
Sistema operativo | Multiplataforma |
Disponible en | Inglés |
Tipo | Biblioteca de software |
Licencia | Código abierto GPL |
Sitio web | itpp |
IT ++ es una biblioteca C ++ de clases y funciones para álgebra lineal , optimización numérica , procesamiento de señales , comunicaciones y estadísticas . Está siendo desarrollado por investigadores en estas áreas y es ampliamente utilizado por investigadores, tanto en la industria de las comunicaciones como en las universidades. La biblioteca IT ++ se origina en el antiguo Departamento de Teoría de la Información de la Universidad Tecnológica de Chalmers, Gotemburgo, Suecia.
El núcleo de la biblioteca IT ++ son clases de matriz y vector con plantilla , y un conjunto de funciones acompañantes. Tal núcleo hace que la biblioteca IT ++ sea similar a Matlab / Octave . Para una mayor funcionalidad, velocidad y precisión, IT ++ puede hacer un uso extensivo de las bibliotecas de código abierto y gratuitas existentes , especialmente las bibliotecas BLAS , LAPACK y FFTW . En lugar de BLAS y LAPACK, también se pueden usar algunas bibliotecas optimizadas específicas de la plataforma, es decir:
- ATLAS (Software de álgebra lineal sintonizado automáticamente): incluye BLAS, CBLAS optimizados y un conjunto limitado de rutinas LAPACK;
- MKL (Intel Math Kernel Library): incluye todas las rutinas BLAS, CBLAS, LAPACK y FFT necesarias (no se requiere FFTW);
- ACML (AMD Core Math Library): incluye rutinas BLAS, LAPACK y FFT (no se requiere FFTW).
Es posible compilar y utilizar IT ++ sin ninguna de las bibliotecas mencionadas anteriormente, pero la funcionalidad se reducirá. TI ++ obras en Linux , Solaris , de Windows (con Cygwin , MinGW / MSYS o Microsoft Visual C ++ ) y OS X sistemas operativos.
Ejemplo
Aquí hay un ejemplo trivial que demuestra la funcionalidad de IT ++ similar a Matlab / Octave,
#include <iostream>
#include <itpp/itbase.h>
using namespace std;
using namespace itpp;
int main()
{
vec a = linspace(0.0, 2.0, 2);
vec b = "1.0 2.0";
vec c = 2*a + 3*b;
cout << "c =\n" << c << endl;
mat A = "1.0 2.0; 3.0 4.0";
mat B = "0.0 1.0; 1.0 0.0";
mat C = A*B + 2*A;
cout << "C =\n" << C << endl;
cout << "inverse of B =\n" << inv(B) << endl;
return 0;
}
Ver también
- Lista de software de análisis numérico
- Lista de bibliotecas numéricas
- Álgebra lineal numérica
- Computación científica