Библиотека шаблонов матрицы - Matrix Template Library
Операционная система | Linux, Unix, Mac OS X, Windows |
---|---|
Доступно в | C ++ |
Тип | Научное программное обеспечение библиотека |
Лицензия | Лицензия на программное обеспечение Boost |
Интернет сайт | http://simunova.com/en/mtl4/ |
В Библиотека шаблонов матрицы (MTL) - это линейная алгебра библиотека для C ++ программы.
MTL использует программирование шаблонов, что значительно сокращает длину кода. Все матрицы и векторы доступны во всех классических числовых форматах: плавать
, двойной
, сложный <поплавок>
или сложный <двойной>
.
Более того, общее программирование позволяет использовать произвольные типы, если они обеспечивают необходимые операции. Например, можно использовать произвольные целочисленные форматы (например, беззнаковый короткий
), типы для интервальной арифметики (например, boost :: interval) из Библиотеки Boost C ++, кватернионы (например, boost :: quaternion), типы более высокой точности (например, Библиотека GNU Multi-Precision ) и соответствующие пользовательские типы.
MTL поддерживает несколько реализаций плотные матрицы и разреженные матрицы. MTL2 был разработан Джереми Сиком и Эндрю Ламсдэйном.[1]
Последняя версия, MTL4, разработана Питером Готчлингом и Эндрю Ламсдэйном. Он содержит большую часть функциональности MTL2 и добавляет новые методы оптимизации в виде мета-настройки, например разворачивание петли контейнеров с динамическим размером можно указать в вызове функции. Независимая от платформы масштабируемость производительности достигается за счет рекурсивных структур данных и алгоритмов.[2]
Общие приложения могут быть записаны в естественной записи, например v + = A * q - w;
, в то время как библиотека отправляет соответствующие алгоритмы: матричные векторные произведения, матричные произведения, векторные скалярные произведения и т. д. Цель состоит в том, чтобы инкапсулировать проблемы производительности внутри библиотеки и предоставить ученым интуитивно понятный интерфейс. MTL4 используется в разных заключительный элемент и конечный объем пакеты, например то Проект FEniCS.[3]
использованная литература
- ^ J.G. Зик и А. Ламсдайн: Библиотека матричных шаблонов: общий подход к программированию высокопроизводительной числовой линейной алгебры. ISCOPE 1998. В архиве 2008-05-12 на Wayback Machine
- ^ П. Готчлинг, Д.С. Уайз и М.Д. Адамс: Матричные алгоритмы, прозрачные для представления, с масштабируемой производительностью. ICS '07: Proc. 21-й стажер. конф. по суперкомпьютерам, стр. 116--125, ACM Press, Нью-Йорк, 2007. В архиве 2008-07-20 на Wayback Machine
- ^ Веб-страница Dolfin в рамках проекта FEniCS. В архиве 2009-01-04 в Wayback Machine