Blitz++ (Blitz++)

Перейти к навигации Перейти к поиску
Blitz++
Тип Библиотека
Разработчик Vision and Image Processing Lab
Написана на C++
Операционная система Кроссплатформенное программное обеспечение
Последняя версия 0.10 (4 июля 2012 года)
Репозиторий github.com/blitzpp/blitz
Лицензия LGPLv3+
Сайт blitz.sourceforge.net

Blitz++ — высокопроизводительная библиотека функций векторной математики, написанная на C++.

Особенности

[править | править код]

Данная библиотека была разработана для выполнения научных расчетов и обеспечивает производительность наравне с Fortran 77/90.

Blitz++ использует шаблоны C++, которые обеспечивают компилятор метаинформацией, позволяющей получить на выходе хорошо оптимизированный код. В результате этого, обеспечивается высокая скорость выполнения математических операций над массивами данных, без ущерба для синтаксиса программы, чем не могут похвастаться другие подобные математические программные системы. Библиотека Blitz++ признана пионером в использовании этого способа метапрограммирования.[1]

В библиотеке поддерживаются операции с матрицами, тензорами и векторами. Имеется реализация генератора случайных чисел. Размерность для массивов ограничена 11-ю измерениями. При этом, поддерживается сортировка массивов как в стиле C, так и в стиле Fortran.[2]

История развития

[править | править код]

Проект начался в Vision and Image Processing Lab — одной из лабораторий кафедры проектирования инженерных систем университета Ватерлоо и был поддержан как часть en:Natural Sciences and Engineering Research Council при программе PGS A.

В начале 1998-х Future Technologies Group в en:National Energy Research Scientific Computing Center предоставила доступ к своим суперкомпьютерам для тестирования производительности и бенчмаркинга. В дальнейшем, разработка библиотеки продолжилась в Extreme Computing Laboratory Индианского университета в Блумингтоне.

В настоящее время, работы над библиотекой ведутся в Open Systems Laboratory Индианского университета в Блумингтоне.

Библиотека Blitz++ используется в нескольких научных проектах, таких как, например:

Примечания

[править | править код]
  1. Abrahams D., Gurtovoy A. C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. — 5. — Addison Wesley Professional, 2005. — 373 p. — (The C++ in-Depth Series). — ISBN 0-321-22725-5.
  2. Blitz++ 0.1 alpha 04b review. Дата обращения: 25 сентября 2013. Архивировано 27 сентября 2013 года.
  3. Сайт проекта C++QED. Дата обращения: 25 сентября 2013. Архивировано 3 октября 2013 года.