IT ++ - IT++

Biblioteca IT ++ C ++
Lanzamiento estable
4.3.1 / 6 de julio de 2013 ; hace 7 años ( 2013-07-06 )
Escrito en C ++
Sistema operativo Multiplataforma
Disponible en Inglés
Tipo Biblioteca de software
Licencia Código abierto GPL
Sitio web itpp .sourceforge .net

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

Referencias

enlaces externos