Библиотека шаблонов матриц

Библиотека линейной алгебры для программ на языке C++
Библиотека шаблонов матриц
Операционная системаLinux , Unix , MacOS , Windows
Доступно вС++
ТипБиблиотека научного программного обеспечения
ЛицензияЛицензия на программное обеспечение Boost
Веб-сайтhttp://simunova.com/en/mtl4/

Библиотека шаблонов матриц (MTL) — это библиотека линейной алгебры для программ на языке C++ .

MTL использует шаблонное программирование , что значительно сокращает длину кода. Все матрицы и векторы доступны во всех классических числовых форматах: float, double, complex<float>или complex<double>.

Более того, обобщенное программирование позволяет использовать произвольные типы, пока они предоставляют необходимые операции. Например, можно использовать произвольные целочисленные форматы (например, unsigned short), типы для интервальной арифметики (например, boost::interval) из библиотек Boost C++ , кватернионы (например, boost::quaternion), типы более высокой точности (например, GNU Multi-Precision Library ) и соответствующие пользовательские типы.

MTL поддерживает несколько реализаций плотных матриц и разреженных матриц . MTL2 был разработан Джереми Сиком и Эндрю Ламсдейном. [1]

Последняя версия, MTL4, разработана Питером Готтшлингом и Эндрю Ламсдейном. Она содержит большую часть функциональности MTL2 и добавляет новые методы оптимизации, такие как мета-настройка, например, развертывание цикла динамических контейнеров может быть указано в вызове функции. Масштабируемость производительности, не зависящая от платформы, достигается с помощью рекурсивных структур данных и алгоритмов. [2]

Общие приложения могут быть написаны в естественной нотации, например v += A*q - w;, в то время как библиотека отправляет соответствующие алгоритмы: матрично-векторные произведения против матричных произведений против векторных скалярных произведений и т. д. Цель состоит в том, чтобы инкапсулировать проблемы производительности внутри библиотеки и предоставить ученым интуитивно понятный интерфейс. MTL4 используется в различных пакетах конечных элементов и конечных объемов , например, в проекте FEniCS . [3]

Смотрите также

Ссылки

  1. ^ JG Siek и A. Lumsdaine: Библиотека шаблонов матриц: универсальный подход к программированию высокопроизводительной числовой линейной алгебры. ISCOPE 1998. Архивировано 12 мая 2008 г. на Wayback Machine
  2. ^ P. Gottschling, DS Wise и MD Adams: Алгоритмы прозрачных матриц с масштабируемой производительностью. ICS '07: Proc. 21st intern. conf. on Supercomputing, стр. 116--125, ACM Press, Нью-Йорк, 2007. Архивировано 20 июля 2008 г. в Wayback Machine
  3. ^ Веб-страница Dolfin в проекте FEniCS. Архивировано 2009-01-04 на Wayback Machine
  • Домашняя страница MTL
  • Домашняя страница MTL4
Получено с "https://en.wikipedia.org/w/index.php?title=Библиотека_шаблонов_матриц&oldid=1263257269"