IT++
From Encoresoup - The Ultimate Guide to Free/Open Source Software
|
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.
Contents |
[edit] 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).
[edit] Features
A short list of the main features of IT++ is given below sorted in different categories.
[edit] Programming features
- templated array and stack container classes
- command line and file argument parser
- timing functions and classes
[edit] 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
[edit] 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)
[edit] 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
[edit] Protocol simulation
- event-based simulation classes
- signal and slots for simplified syntax
- TCP clients and servers
- Selective Repeat ARQ
- queue classes
- packet generators
[edit] 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
[edit] Other features
- binary file format for most built in IT++ types
- fixed-point scalar, vector and matrix types
[edit] See also
- list of numerical analysis software
- scientific computing

![Practical Django Projects [Amazon] Practical Django Projects [Amazon]](http://openx.eclecticdave.com/images/51BFdH6VWsL._SL160_.jpg)
![USB Memory Watch [ThinkGeek] USB Memory Watch [ThinkGeek]](http://www.ftjcfx.com/image-3067719-10356334?imgurl=http%3A//www.thinkgeek.com/images/products/front/usb_memory_watch.jpg)
![Linksys NSLU2 Storage Link for USB 2.0 Disk Drives [Amazon] Linksys NSLU2 Storage Link for USB 2.0 Disk Drives [Amazon]](http://openx.eclecticdave.com/images/41XEWAYEK7L._SL160_.jpg)

