IT++
IT++ is a C++ library of classes and functions for linear algebra, numerical optimization, signal processing, communications, and statistics.[1] It is being developed by researchers in these areas and is widely used by researchers, both in the communications industry and universities.[2][3] The IT++ library originates from the former Department of Information Theory at the Chalmers University of Technology, Gothenburg, Sweden. The kernel of the IT++ library is templated vector and matrix classes, and a set of accompanying functions. Such a kernel makes IT++ library similar to Matlab/Octave. For increased functionality, speed and accuracy, IT++ can make extensive use of existing free and open source libraries, especially BLAS, LAPACK and FFTW libraries. Instead of BLAS and LAPACK, some optimized platform-specific libraries can be used as well, i.e.:
It is possible to compile and use IT++ without any of the above-listed libraries, but the functionality will be reduced. IT++ works on Linux, Solaris, Windows (with Cygwin, MinGW/MSYS, or Microsoft Visual C++) and OS X operating systems. ExampleHere is a trivial example demonstrating the IT++ functionality similar to 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;
}
See also
References
External links |