Перейти к навигации Перейти к поиску
В следующих таблицах приводится сравнение программных библиотек линейной алгебры , специализированных или общих библиотек со значительным охватом линейной алгебры.
Плотная линейная алгебра [ править ]
Общая информация [ править ]
Создатель | Язык | Первый публичный релиз | Последняя стабильная версия | Доступность исходного кода | Лицензия | Примечания | |
---|---|---|---|---|---|---|---|
АЛГЛИБ [1] | Проект ALGLIB | C ++, C #, FreePascal, VBA | 2006 г. | 3.12.0 / 08.2017 | Свободный | GPL / коммерческий | Библиотека численного анализа общего назначения с интерфейсами C ++ и C #. |
Армадилло [2] [3] | НИКТА | C ++ | 2009 г. | 9.200 / 10.2018 | Свободный | Лицензия Apache 2.0 | Библиотека шаблонов C ++ для линейной алгебры; включает различные декомпозиции и факторизации; синтаксис ( API ) похож на MATLAB . |
АТЛАС | R. Clint Whaley et al. | C | 2001 г. | 3.10.3 / 07.2016 | Свободный | BSD | Автоматически настраиваемая реализация BLAS. Также включает разложения LU и Холецкого. |
Пламя [4] | K. Iglberger et al. | C ++ | 2012 г. | 3.8 / 08.2020 | Свободный | BSD | Blaze - это высокопроизводительная математическая библиотека C ++ с открытым исходным кодом для плотной и разреженной арифметики. |
Блиц ++ | Тодд Велдхёйзен | C ++ | ? | 1.0.2 / 10.2019 | Свободный | GPL | Blitz ++ - это библиотека классов шаблонов C ++, которая предоставляет высокопроизводительные контейнеры многомерных массивов для научных вычислений. |
Увеличить uBLAS | Дж. Вальтер, М. Кох | C ++ | 2000 г. | 1.70.0 / 04.2019 | Свободный | Лицензия на программное обеспечение Boost | uBLAS - это библиотека классов шаблонов C ++, которая обеспечивает функциональность BLAS уровней 1, 2, 3 для плотных, упакованных и разреженных матриц. |
Длиб | Дэвис Э. Кинг | C ++ | 2006 г. | 19.7 / 09.2017 | Свободный | Способствовать росту | Библиотека шаблонов C ++; связывается с оптимизированным BLAS, таким как Intel MKL; Включает разложение матриц, нелинейные решатели и инструменты машинного обучения |
Эйген | Бенуа Жакоб | C ++ | 2008 г. | 3.3.7 / 12.2018 | Свободный | MPL2 | Eigen - это библиотека шаблонов C ++ для линейной алгебры: матриц, векторов, числовых решателей и связанных алгоритмов. |
Фастор [5] | Р. Пойя, А. Дж. Гил и Р. Ортигоса | C ++ | 2016 г. | 0.6.3 / 06.2020 | Свободный | Лицензия MIT | Fastor - это высокопроизводительная библиотека тензора (фиксированного многомерного массива) для современного C ++. |
Научная библиотека GNU [6] | Проект GNU | C, C ++ | 1996 г. | 2.5 / 06.2018 | Свободный | GPL | Библиотека численного анализа общего назначения. Включает некоторую поддержку линейной алгебры. |
Цифровые библиотеки IMSL | Программное обеспечение Rogue Wave | C, Java, C #, Фортран, Python | 1970 г. | многие компоненты | Несвободный | Проприетарный | Библиотека численного анализа общего назначения. |
ЛАПАК [7] [8] | Фортран | 1992 г. | 3.9.0 / 11.2019 | Свободный | 3-пункт BSD | Библиотека числовой линейной алгебры с долгой историей | |
librsb | Мишель Мартоне | C, Фортран, M4 | 2011 г. | 1.2 / сентябрь 2016 г. | Свободный | GPL | Высокопроизводительные многопоточные примитивы для больших разреженных матриц. Поддержка операций для итерационных решателей: умножение, треугольное решение, масштабирование, ввод-вывод матрицы, рендеринг матрицы. Вариантов много: например: симметричный, эрмитовый, сложный, четырехкратной точности. |
MKL | Intel | C ++, Фортран | 2003 г. | 2020.0 обновление 1 / 01.2020 | Несвободный | Упрощенная лицензия на программное обеспечение Intel | Библиотека численного анализа оптимизирована для процессоров Intel |
Math.NET Числа | К. Рюэгг, М. Куда и др. | C # | 2009 г. | 3.20 / 07.2017 | Свободный | Лицензия MIT | Библиотека численного анализа C # с поддержкой линейной алгебры |
Цифровая библиотека NAG | Группа численных алгоритмов | C, Фортран | 1971 г. | многие компоненты | Несвободный | Проприетарный | Библиотека численного анализа общего назначения. |
NMath | Программное обеспечение CenterSpace | C # | 2003 г. | 7.1 / декабрь 2019 | Несвободный | Проприетарный | Математические и статистические библиотеки для .NET Framework |
SciPy [9] [10] [11] | Задумался | Python | 2001 г. | 1.0.0 / 10.2017 | Свободный | BSD | На основе Python |
Xtensor [12] | S. Corlay, W. Vollprecht, J. Mabille et al. | C ++ | 2016 г. | 0.21.10 / 11.2020 | Свободный | 3-пункт BSD | Xtensor - это библиотека C ++, предназначенная для численного анализа с многомерными массивами выражений, широковещательной рассылки и отложенных вычислений. |
Типы матриц и операции [ править ]
Типы матриц (специальные типы, такие как двунаправленная / трехдиагональная, не перечислены):
- Реальный - общий (несимметричный) действительный
- Комплекс - общий (несимметричный) комплекс
- SPD - симметричный положительно определенный (действительный)
- HPD - эрмитово положительно определенное (комплексное)
- SY - симметричный (действительный)
- HE - эрмитский (комплексный)
- BND - группа
Операции:
- TF - треугольные факторизации (LU, Холецкий)
- OF - ортогональные факторизации (QR, QL, обобщенные факторизации)
- EVP - задачи на собственные значения
- SVD - сингулярное разложение
- GEVP - обобщенный EVP
- ГСВД - генерализованная СВД
Настоящий | Сложный | СПД | HPD | SY | ОН | BND | TF | ИЗ | EVP | СВД | GEVP | GSVD | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
АЛГЛИБ | да | да | да | да | Нет | Нет | Нет | да | да | да | да | да | Нет |
АТЛАС | да | да | да | да | Нет | Нет | Нет | да | Нет | Нет | Нет | Нет | Нет |
Длиб | да | да | да | да | да | да | Нет | да | да | да | да | Нет | Нет |
Научная библиотека GNU | да | да | да | да | Нет | Нет | Нет | да | да | да | да | да | Нет |
ILNumerics.Net | да | да | да | да | Нет | Нет | Нет | да | да | да | да | Нет | Нет |
Цифровые библиотеки IMSL | да | да | да | да | Нет | Нет | да | да | Нет | да | да | да | Нет |
ЛАПАК | да | да | да | да | да | да | да | да | да | да | да | да | да |
MKL | да | да | да | да | да | да | да | да | да | да | да | да | да |
Цифровая библиотека NAG | да | да | да | да | да | да | да | да | да | да | да | да | да |
NMath | да | да | да | да | да | да | да | да | да | да | да | Нет | Нет |
SciPy (пакеты Python) | да | да | да | да | Нет | Нет | Нет | да | да | да | да | Нет | Нет |
Эйген | да | да | да | да | да | да | да | да | да | да | да | да | Нет |
Armadillo | да | да | да | да | да | да | Нет | да | да | да | да | да | Нет |
Ссылки [ править ]
- ^ Бочканов, S., & Быстрицкий, В. (2011). ALGLIB - кроссплатформенная библиотека для численного анализа и обработки данных. Проект ALGLIB. Новгород, Россия.
- Перейти ↑ Sanderson, C., & Curtin, R. (2016). Armadillo: основанная на шаблонах библиотека C ++ для линейной алгебры. Журнал программного обеспечения с открытым исходным кодом, 1 (2), 26.
- Перейти ↑ Sanderson, C. (2010). Armadillo: библиотека линейной алгебры C ++ с открытым исходным кодом для быстрого прототипирования и экспериментов с интенсивными вычислениями (стр. 84). Технический отчет, NICTA.
- ^ https://bitbucket.org/blaze-lib/blaze/src/master/
- ^ Poya, римской и Gil, Антонио Дж и Ortigosa Рохелио (2017). «Высокопроизводительная структура параллельного тензорного сжатия данных: приложение к сопряженной электромеханике». Компьютерная физика . DOI : 10.1016 / j.cpc.2017.02.016 .CS1 maint: несколько имен: список авторов ( ссылка )
- Перейти ↑ Gough, B. (2009). Справочное руководство по научной библиотеке GNU. Network Theory Ltd.
- Перейти ↑ Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., ... & Sorensen, D. (1999). LAPACK Руководство пользователя. СИАМ.
- Перейти ↑ Anderson, E., Bai, Z., Dongarra, J., Greenbaum, A., McKenney, A., Du Croz, J., ... & Sorensen, D. (1990, ноябрь). LAPACK: портативная библиотека линейной алгебры для высокопроизводительных компьютеров. В материалах конференции ACM / IEEE 1990 г. по суперкомпьютерам (стр. 2–11). Издательство IEEE Computer Society Press.
- Перейти ↑ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: научные инструменты с открытым исходным кодом для Python.
- ^ Брессерт, E. (2012). SciPy и NumPy: обзор для разработчиков. "O'Reilly Media, Inc.".
- Перейти ↑ Blanco-Silva, FJ (2013). Изучение SciPy для числовых и научных вычислений. Packt Publishing Ltd.
- ^ https://github.com/xtensor-stack/xtensor
Внешние ссылки [ править ]
- scipy на GitHub
- броненосец на GitHub
- mathnet-numerics на GitHub