- IT++
IT++ is a
C++ library composed of classes and functions forlinear algebra (matrices and vectors),signal processing andtelecommunication systems.It can also be used in areas such asmachine learning andpattern recognition .Templated vector and matrix classes are the core of the IT++ library, making its functionality similar to that of
MATLAB andGNU Octave .IT++ makes an extensive use of existing open source libraries (but not only) for increased functionality, speed and accuracy. In particular
BLAS ,LAPACK , ATLAS andFFTW libraries can be used.History
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++ has developed a life of its own and is now released under the terms of theGNU General Public License (GPL).Features
A short list of the main features of IT++ is given below sorted in different categories.
Programming features
* templated array and stack container classes
* command line and file argument parser
* timing functions and classesBasic mathematical features
* templated vector and matrix classes
* sparse vector and matrix classes
* elementary functions on vectors and matrices
* matrix decompositions such as eigenvalue,Cholesky ,LU ,Schur , SVD, andQR
* solving linear system of equations (including over- and underdetermined)
* random number generation (Mersenne Twister generator)
* binary andGalois types (scalar, vector and matrix)
* integration of 1-dimensional functions
* unconditional nonlinear optimization (Quasi-Newton search)
* statistics classSignal processing
* filter functions and classes
* frequency domain filtering
* FFT, DFT, DCT, and Hadamard transforms
* time and frequency domain windows
* evaluating and finding roots of polynomials (and inverse operations)
* filter design functions
* fast independent component analysis (fast ICA)Communications
* modulators (BPSK, PSK, PAM, QAM)
* vector modulators (e.g. for OFDM and MIMO)
* OFDM and CDMA modulators
* pulse shaping filters (including RC and RRC)
* binary symmetric (BSC) and additive white Gaussian Noise (AWGN) channels
* multipath fading channels (both frequency-flat and frequency-selective)
* COST 207, COST 257, and ITU channel models
* Hamming, Extended Golay, and CRC codes
* BCH and Reed-Solomon codes
* convolutional and punctured convolutional codes
* recursive convolutional codes
* turbo codes
* interleaversProtocol simulation
* event-based simulation classes
* signal and slots for simplified syntax
* TCP clients and servers
* Selective Repeat ARQ
* queue classes
* packet generatorsSource coding
* Scalar Quantizer (SQ) and Vector Quantizer (VQ) classes and functions for training of these
* LPC, LSF, and cepstrum parameter calculation for speech processing
* Gaussian Mixture Modeling (GMM)
* reading and saving several different audio file formats
* reading and saving images in PNM formatOther features
* binary file format for most built in IT++ types
* fixed-point scalar, vector and matrix typesSee also
*
list of numerical analysis software
*scientific computing External links
* [http://itpp.sourceforge.net IT++ Home Page]
Wikimedia Foundation. 2010.