IT++

IT++

IT++ is a C++ library composed of classes and functions for linear algebra (matrices and vectors), signal processing and telecommunication systems.It can also be used in areas such as machine learning and pattern recognition.

Templated vector and matrix classes are the core of the IT++ library, making its functionality similar to that of MATLAB and GNU 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 and FFTW 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 the GNU 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 classes

Basic 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, and QR
* solving linear system of equations (including over- and underdetermined)
* random number generation (Mersenne Twister generator)
* binary and Galois types (scalar, vector and matrix)
* integration of 1-dimensional functions
* unconditional nonlinear optimization (Quasi-Newton search)
* statistics class

Signal 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
* interleavers

Protocol simulation

* event-based simulation classes
* signal and slots for simplified syntax
* TCP clients and servers
* Selective Repeat ARQ
* queue classes
* packet generators

Source 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 format

Other features

* binary file format for most built in IT++ types
* fixed-point scalar, vector and matrix types

See also

* list of numerical analysis software
* scientific computing

External links

* [http://itpp.sourceforge.net IT++ Home Page]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”