Misplaced Pages

IT++

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
IT++ C++ Library
Stable release4.3.1 / July 6, 2013; 11 years ago (2013-07-06)
Written inC++
Operating systemCross-platform
Available inEnglish
TypeSoftware library
LicenseGPL open source
Websiteitpp.sourceforge.net

IT++ is a C++ library of classes and functions for linear algebra, numerical optimization, signal processing, communications, and statistics. It is being developed by researchers in these areas and is widely used by researchers, both in the communications industry and universities. 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.:

  • 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. IT++ works on Linux, Solaris, Windows (with Cygwin, MinGW/MSYS, or Microsoft Visual C++) and OS X operating systems.

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

See also

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, doi: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, doi:10.1109/ITS.2006.4433344

External links

Chalmers University of Technology
Academics
Organizations
Projects
Joint ventures
Related
Categories: