ИТ++
Стабильная версия | 4.3.1
/ 6 июля 2013 г |
---|---|
Написано в | С++ |
Операционная система | Кросс-платформенный |
Доступно в | Английский |
Тип | Библиотека программного обеспечения |
Лицензия | GPL с открытым исходным кодом |
Веб-сайт | ИТПП |
IT++ — это C++ библиотека классов и функций для линейной алгебры , численной оптимизации , обработки сигналов , связи и статистики . [ 1 ] Он разрабатывается исследователями в этих областях и широко используется исследователями как в отрасли связи, так и в университетах. [ 2 ] [ 3 ] Библиотека IT++ возникла на базе бывшего факультета теории информации Технологического университета Чалмерса в Гетеборге, Швеция.
Ядро библиотеки IT++ — это шаблонные векторные и матричные классы, а также набор сопутствующих функций. Такое ядро делает библиотеку IT++ похожей на Matlab / Octave . Для повышения функциональности, скорости и точности IT++ может широко использовать существующие бесплатные библиотеки с открытым исходным кодом , особенно BLAS , LAPACK и FFTW библиотеки . Вместо BLAS и LAPACK также можно использовать некоторые оптимизированные библиотеки для конкретной платформы, а именно:
- ATLAS (программное обеспечение автоматически настраиваемой линейной алгебры) — включает оптимизированные BLAS, CBLAS и ограниченный набор подпрограмм LAPACK;
- MKL (Intel Math Kernel Library) — включает все необходимые процедуры BLAS, CBLAS, LAPACK и FFT (FFTW не требуется);
- ACML (AMD Core Math Library) — включает процедуры BLAS, LAPACK и FFT (FFTW не требуется).
Можно скомпилировать и использовать IT++ без какой-либо из перечисленных выше библиотек, но функциональность будет урезана. IT++ работает в Linux , Solaris , Windows (с Cygwin , MinGW/MSYS или Microsoft Visual C++ ) и OS X. операционных системах
Пример
[ редактировать ]Вот тривиальный пример, демонстрирующий функциональность IT++, аналогичную 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;
}
См. также
[ редактировать ]- Список программного обеспечения для численного анализа
- Список числовых библиотек
- Численная линейная алгебра
- Научные вычисления
Ссылки
[ редактировать ]- ^ IT++, Каталог свободного программного обеспечения , Фонд свободного программного обеспечения , http://directory.fsf.org
- ^ Богдан Кристя. 2009. Турборесиверы с IT++. В материалах 2-й Международной конференции по инструментам и методам моделирования (Simutools '09). ICST (Институт компьютерных наук, социальной информатики и телекоммуникационной инженерии), ICST, Брюссель, Бельгия, Бельгия, doi : 10.4108/ICST.SIMUTOOLS2009.5564
- ^ де Лима, CHM; Станканелли, EMG; Родригес, EB; да С. Масиэль, Ж.М.; Кавальканти, FRP, Среда разработки программного обеспечения на основе языка ООП C++ для инструментов моделирования канального уровня, Телекоммуникационный симпозиум, Международный симпозиум 2006 г., Форталеза, Бразилия, дои : 10.1109/ITS.2006.4433344