A short list of the main features of IT++ is given below sorted in different categories. Many more features and functions exist and for these we refer to the reference documentation.
Programming features
- templated array and stack container classes
- input and file argument parser
- timing functions and classes
Basic mathematical features
- templated vector and matrix classes
- sparse vectors and matrix classes
- elementary functions on vectors and matrices
- statistics classes and functions
- 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 (both scalar and vector and matrices)
- integration of 1-dimensional functions
- unconditional nonlinear optimization (Quasi-Newton search)
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
- reading and saving several different audiofile formats
- reading and saving images in PNM format
Other features
- binary file format for most built in and IT++ types
- fixed-point scalar, vector and matrix types