Matrix Template Library
Matrix Template Library | |
---|---|
![]() | |
Тип | Scientific software library |
Написана на | C++ |
Операционные системы | Linux, Unix, Mac OS X, Windows |
Языки интерфейса | C++ |
Лицензия | Boost Software License |
Сайт | osl.iu.edu/research/mtl |
Матричная библиотека шаблонов (MTL)- это библиотека линейной алгебры для С++ программ.
MTL использует шаблоны С++, которые значительно сокращают код программы. Все матрицы и векторы допустимы во всех классических числовых форматах : float,double, complex <float> or complex <double>.
Более того , обобщённое программирование допускает использование произвольных типов до тех пор пока они производят необходимые операции. Например, можно использовать произвольные числовые форматы (например , unsigned short),типы для интервальной арифметики (например ,boost: интервал из Boost библиотеки, кватернионы (например ,boost:кватернион), типы высокой точности (например , GNU Multi-Precision Library) и соответствующие определённые пользователем типы .
MTL поддерживает различные реализации плотной матрицы и разряжённой матрицы . MTL2 была разработана Jeremy Siek и Andrew Lumsdaine.[1]
Последняя версия ,MTL4, была разработана Peter Gottschling и Andrew Lumsdaine. Она содержит большинство функций MTL2 ,а также дополнена новыми техниками оптимизации ,такими как метанастройка ,например, раскрутка цикла динамически размеренных контейнеров может быть определена в вызове функции. Платформо независимая масштабируемость производительности достигнута рекурсивной структурой данных и рекурсивными алгоритмами.[2]
Универсальные приложения могут быть написаны в натуральной нотации (кодировке), например , v+= A*q - w; тогда как библиотека диспетчеризует к соответствующим алгоритмам: matrix vector products vs. matrix products vs. vector scalar products и т.д. Целью является скрыть реализационные вопросы внутри библиотеки и предоставить пользователю наглядный интерфейс. MTL4 исользуется в различных пакетах ,таких как метод конечных элементов и метод конечных объёмов ,например ,FEniCS Project.[3]
Ссылки
- ↑ J.G. Siek and A. Lumsdaine: The Matrix Template Library: A Generic Programming Approach to High Performance Numerical Linear Algebra. ISCOPE 1998.
- ↑ P. Gottschling, D.S. Wise, and M.D. Adams: Representation-transparent matrix algorithms with scalable performance. ICS '07: Proc. 21st intern. conf. on Supercomputing, pp. 116--125, ACM Press, New York, 2007.
- ↑ Dolfin web page within the FEniCS project.
См. также
- Boost uBLAS, альтернативная библиотека линейной алгебры для С++