IT++

From Wikipedia, the free encyclopedia
Jump to: navigation, search
IT++ C++ Library
Stable release 4.2 / September 21, 2010; 17 months ago (2010-09-21)
Written in C++
Operating system Cross-platform
Available in English
Type Software library
License GPL open source
Website itpp.sourceforge.net/current/

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 kernel of the IT++ library are templated vector and matrix classes, and lots of functions for vectors and matrices. Such a kernel makes IT++ library similar to Matlab/Octave. IT++ makes an extensive use of existing free and open source libraries (but not only) for increased functionality, speed and accuracy. In particular BLAS, CBLAS, LAPACK and FFTW libraries might be used. Instead of BLAS and LAPACK, some optimized platform-specific libraries can be used as well, i.e.:

  • ATLAS (Automatically Tuned Linear Algebra Software) - includes optimised BLAS, CBLAS and a limited set of LAPACK routines;
  • MKL (Intel Math Kernel Library) - includes all required BLAS, CBLAS, LAPACK and FFT routines (FFTW not required);
  • ACML (AMD Core Math Library) - includes BLAS, LAPACK and FFT routines (FFTW not required).

It is possible to compile and use IT++ without any of the above listed libraries, but the functionality will be reduced. The IT++ library originates from the former department of Information Theory at the Chalmers University of Technology, Gothenburg, Sweden. IT++ works on GNU/Linux, Sun Solaris, Microsoft Windows (with Cygwin, MinGW/MSYS, or Microsoft Visual C++ .NET) and Mac OS X operating systems.

Contents

[edit] Availability

Several GNU/Linux distributions include IT++ in their repositories (as of 2011), in particular Debian, Ubuntu and Fedora. In Ububntu the library can be installed with the command

sudo apt-get install libitpp-dev

The compiler and linker options can be obtained using the itpp-config utility. For example, the program in the next chapter can be compiled with the command

g++ `itpp-config --cflags` example.cc `itpp-config --libs`

[edit] Example

Here 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;
}

[edit] See also

[edit] References

  1. ^ IT++, Free Software Directory, Free Software Foundation, http://directory.fsf.org
  2. ^ Bogdan Cristea. 2009. Turbo receivers with IT++. In Proceedings of the 2nd International Conference on Simulation Tools and Techniques (Simutools '09). ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), ICST, Brussels, Belgium, Belgium, http://dx.doi.org/10.4108/ICST.SIMUTOOLS2009.5564
  3. ^ de Lima, C.H.M.; Stancanelli, E.M.G.; Rodrigues, E.B.; da S. Maciel, J.M.; Cavalcanti, F.R.P., A software development framework based on C++ OOP language for link-level simulation tools, Telecommunications Symposium, 2006 International, Fortaleza, Brazil, http://dx.doi.org/10.1109/ITS.2006.4433344

[edit] External links

Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export