Matrix Template Library

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Zumradka (обсуждение | вклад) в 10:27, 11 октября 2010. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
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]


Ссылки

См. также

  • Boost uBLAS, альтернативная библиотека линейной алгебры для С++

Внешние ссылки

  • MTL домашняя страница
  • MTL4 домашняя страница