Software:IT++
Stable release | 4.3.1
/ July 6, 2013 |
---|---|
Written in | C++ |
Operating system | Cross-platform |
Available in | English |
Type | Software library |
License | GPL open source |
Website | itpp |
IT++ is a C++ library of classes and functions for linear algebra, numerical optimization, signal processing, communications, and statistics.[1] It is being developed by researchers in these areas and is widely used by researchers, both in the communications industry and universities.[2][3] The IT++ library originates from the former Department of Information Theory at the Chalmers University of Technology, Gothenburg, Sweden.
The kernel of the IT++ library is templated vector and matrix classes, and a set of accompanying functions. Such a kernel makes IT++ library similar to Matlab/Octave. For increased functionality, speed and accuracy, IT++ can make extensive use of existing free and open source libraries, especially BLAS, LAPACK and FFTW libraries. Instead of 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. IT++ works on Linux, Solaris, Windows (with Cygwin, MinGW/MSYS, or Microsoft Visual C++) and OS X operating systems.
Example
Here is a trivial example demonstrating the IT++ functionality similar to Matlab/Octave,
#include <iostream> #include <itpp/itbase.h> using namespace std; using namespace itpp; int main() { vec a = linspace(0.0, 2.0, 2); vec b = "1.0 2.0"; vec c = 2*a + 3*b; cout << "c =\n" << c << endl; mat A = "1.0 2.0; 3.0 4.0"; mat B = "0.0 1.0; 1.0 0.0"; mat C = A*B + 2*A; cout << "C =\n" << C << endl; cout << "inverse of B =\n" << inv(B) << endl; return 0; }
See also
- List of numerical analysis software
- List of numerical libraries
- Numerical linear algebra
- Scientific computing
References
- ↑ IT++, Free Software Directory, Free Software Foundation, http://directory.fsf.org
- ↑ Bogdan Cristea. 2009. Turbo receivers with IT++. In Proceedings of the 2nd International Conference on Simulation Tools and Techniques (Simutools '09). ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), ICST, Brussels, Belgium, Belgium, doi:10.4108/ICST.SIMUTOOLS2009.5564
- ↑ de Lima, C.H.M.; Stancanelli, E.M.G.; Rodrigues, E.B.; da S. Maciel, J.M.; Cavalcanti, F.R.P., A software development framework based on C++ OOP language for link-level simulation tools, Telecommunications Symposium, 2006 International, Fortaleza, Brazil, doi:10.1109/ITS.2006.4433344
External links
Original source: https://en.wikipedia.org/wiki/IT++.
Read more |