IT++ is a C++ library of mathematical, signal processing, speech processing, and communications classes and functions. IT++ library is being developed by researchers in these areas and is widely used by researchers, both in the communications industry and universities. Since 2004, IT++ is also being developed as a part of the European Network of Excellence (NEWCOM).
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.
IT++ makes an extensive use of existing 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 NetLib's reference 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. Because the library is coded in C++, the name IT++ seemed like a good idea at the time. While departments come and go, IT++ have developed a life of its' own and is now released under the terms of the GNU General Public License (GPL) for you to enjoy.
IT++ should work on GNU/Linux, Sun Solaris, Microsoft Windows (with Cygwin or Microsoft Visual C++ .NET) and Mac OS X (more testers needed).
What's New in This Release: [ read full changelog ]
· Added GDB debugger helper display macros for IT++ data types (feature request )
· Reduced number of divisions in a sinc() function implementation
· "itpp/config.h" no longer included in "itpp/base/itassert.h" header file
· Fixed broken implementation of toeplitz() function for the case when two different complex-valued input vectors are used as input arguments (bug report ).
· Fixed a minor bug in GF::set_size() method: the content of "alphapow" and "logalpha" static variables is now properly copied when resizing them.
· Fixed sort() and sort_index() so they again work for vectors with less than two elements.
· Fixed bug  in Vec::split() method, which was a regression with respect to the previous 3.10.x stable releases.
· Fixed incorrect usage of ZDOTU BLAS function when linking to 64-bit MKL library for GNU/Linux (zdotusub Fortran wrapper function is required)
· Suppressed warnings about deprecated "/Wp64" option when compiling with MS Visual C++ Express 2008