Библиотека шаблонов матриц
Операционная система | Linux , Unix , Mac OS X , 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]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Дж. Г. Сик и А. Ламсдейн: Библиотека шаблонов матриц: общий подход к программированию высокопроизводительной числовой линейной алгебры . ISCOPE 1998. Архивировано 12 мая 2008 г. в Wayback Machine.
- ^ П. Готтшлинг, Д.С. Уайз и М.Д. Адамс: Матричные алгоритмы, прозрачные для представления, с масштабируемой производительностью. ИКС '07: Учеб. 21-й стажер. конф. о суперкомпьютерах, стр. 116–125, ACM Press, Нью-Йорк, 2007. Архивировано 20 июля 2008 г. в Wayback Machine.
- ^ Веб-страница Dolpin в рамках проекта FEniCS. Архивировано 4 января 2009 г. в Wayback Machine.