Сравнение библиотек линейной алгебры

В следующих таблицах представлено сравнение библиотек программного обеспечения линейной алгебры , как специализированных, так и универсальных библиотек со значительным охватом линейной алгебры.

Плотная линейная алгебра

Общая информация

СоздательЯзыкПервый публичный релизПоследняя стабильная версияДоступность исходного кодаЛицензияПримечания
АЛГЛИБ [1]Проект ALGLIBC++, C#, Python, FreePascal20064.00.0 / 05.2023БесплатноGPL/коммерческаяУниверсальная библиотека численного анализа с интерфейсами C++, C#, Python, FreePascal.
Броненосец [2] [3]НИКТАС++200912.6.6 / 10.2023БесплатноЛицензия Apache 2.0Библиотека шаблонов C++ для линейной алгебры; включает различные разложения и факторизации; синтаксис ( API ) похож на MATLAB .
АТЛАСР. Клинт Уэйли и др.С20013.10.3 / 07.2016БесплатноБСДАвтоматически настроенная реализация BLAS. Также включает в себя разложения LU и Холецкого.
Пламя [4]К. Иглбергер и др.С++20123.8 / 08.2020БесплатноБСДBlaze — это высокопроизводительная математическая библиотека C++ с открытым исходным кодом для плотной и разреженной арифметики.
Блиц++Тодд ВельдхейзенС++?1.0.2 / 10.2019БесплатноGPLBlitz++ — это библиотека шаблонов классов C++, которая предоставляет высокопроизводительные контейнеры многомерных массивов для научных вычислений.
Увеличить uBLASДж. Вальтер, М. КохС++20001.84.0 / 12.2023БесплатноЛицензия на программное обеспечение BoostuBLAS — это библиотека шаблонных классов C++, которая обеспечивает функциональность BLAS уровня 1, 2, 3 для плотных, упакованных и разреженных матриц.
ДлибДэвис Э. КингС++200619.24.2 / 05.2023БесплатноСпособствовать ростуБиблиотека шаблонов C++; связывается с оптимизированными BLAS, такими как Intel MKL; включает в себя матричные разложения, нелинейные решатели и инструменты машинного обучения
ЭйгенБенуа ЖакобС++20083.4.0 / 08.2021БесплатноМПЛ2Eigen — это библиотека шаблонов C++ для линейной алгебры: матрицы, векторы, численные решатели и связанные алгоритмы.
Фастор [5]Р. Пойя, Эй Джей Гил и Р. ОртигосаС++20160.6.4 / 06.2023БесплатноЛицензия Массачусетского технологического институтаFastor — высокопроизводительная тензорная (фиксированная многомерная массивная) библиотека для современного C++.
Научная библиотека GNU [6]Проект GNUС, С++19962.7.1 / 11.2021БесплатноGPLБиблиотека численного анализа общего назначения. Включает некоторую поддержку линейной алгебры.
Числовые библиотеки IMSLПрограммное обеспечение Rogue WaveС, Java, C#, Фортран, Питон1970много компонентовНесвободныйЗапатентованныйБиблиотека численного анализа общего назначения.
ЛАПАК [7] [8]Фортран19923.12.0 / 11.2023Бесплатно3-пунктный BSDБиблиотека числовой линейной алгебры с долгой историей
librsbМишель МартонеС, Фортран, М420111.2.0 / 09.2016БесплатноGPLВысокопроизводительные многопоточные примитивы для больших разреженных матриц. Поддержка операций для итеративных решателей: умножение, решение треугольников, масштабирование, матричный ввод-вывод, рендеринг матриц. Множество вариантов: например: симметричный, эрмитовый, комплексный, учетверенной точности.
oneMKLИнтелС, С++, Фортран20032023.1 / 03.2023НесвободныйУпрощенная лицензия на программное обеспечение IntelБиблиотека численного анализа, оптимизированная для процессоров и графических процессоров Intel. Реализация эталонного API на основе C++ SYCL доступна в исходном коде бесплатно.
Math.NET ЧислаК. Рюэгг, М. Куда и др.С#20095.0.0 / 04.2022БесплатноЛицензия Массачусетского технологического институтаБиблиотека численного анализа C# с поддержкой линейной алгебры
Библиотека шаблонов матрицДжереми Сик, Питер Готтшлинг, Эндрю Ламсдейн и др.С++19984.0 / 2018БесплатноЛицензия на программное обеспечение BoostВысокопроизводительная библиотека линейной алгебры C++ на основе Generic Programming
Числовая библиотека NAGГруппа численных алгоритмовС, Фортран1971много компонентовНесвободныйЗапатентованныйБиблиотека численного анализа общего назначения.
НМатематикаПрограммное обеспечение CenterSpaceС#20037.1 / 12.2019НесвободныйЗапатентованныйМатематические и статистические библиотеки для .NET Framework
SciPy [9] [10] [11]ЗадумалсяПитон20011.11.1 / 6.2023БесплатноБСДНа основе Python
Экстензор [12]С. Корлей, В. Фоллпрехт, Дж. Мабилль и др.С++20160.21.10 / 11.2020Бесплатно3-пунктный BSDXtensor — это библиотека C++, предназначенная для численного анализа с использованием выражений многомерных массивов, широковещательной передачи и ленивых вычислений.

Типы матриц и операции

Типы матриц (специальные типы, такие как двухдиагональные/трехдиагональные, не перечислены):

  • Действительный – общий (несимметричный) действительный
  • Комплекс – общий (несимметричный) комплекс
  • СПД – симметричный положительно определенный (действительный)
  • HPD – эрмитово положительно определенное (комплексное)
  • SY – симметричный (действительный)
  • HE – Эрмитов (комплексный)
  • БНД – группа

Операции:

НастоящийСложныйСПДHPDСИОНБНДТФИЗИсполнительный вице-президентСВДГЕВПГСВД
АЛГЛИБДаДаДаДаНетНетНетДаДаДаДаДаНет
АТЛАСДаДаДаДаНетНетНетДаНетНетНетНетНет
ДлибДаДаДаДаДаДаНетДаДаДаДаНетНет
Научная библиотека GNUДаДаДаДаНетНетНетДаДаДаДаДаДа
ILNumerics.NetДаДаДаДаНетНетНетДаДаДаДаНетНет
Числовые библиотеки IMSLДаДаДаДаНетНетДаДаНетДаДаДаНет
ЛАПАКДаДаДаДаДаДаДаДаДаДаДаДаДа
oneMKLДаДаДаДаДаДаДаДаДаДаДаДаДа
Числовая библиотека NAGДаДаДаДаДаДаДаДаДаДаДаДаДа
НМатематикаДаДаДаДаДаДаДаДаДаДаДаНетНет
SciPy (пакеты Python)ДаДаДаДаНетНетНетДаДаДаДаНетНет
ЭйгенДаДаДаДаДаДаДаДаДаДаДаДаНет
БроненосецДаДаДаДаДаДаНетДаДаДаДаДаНет

Ссылки

  1. ^ Бочканов, С. и Быстрицкий, В. (2011). ALGLIB — кроссплатформенная библиотека численного анализа и обработки данных. Проект ALGLIB.
  2. ^ Сандерсон, К. и Кёртин, Р. (2016). Armadillo: библиотека C++ на основе шаблонов для линейной алгебры. Журнал программного обеспечения с открытым исходным кодом, 1(2), 26.
  3. ^ Сандерсон, К. (2010). Armadillo: библиотека линейной алгебры C++ с открытым исходным кодом для быстрого прототипирования и экспериментов с интенсивными вычислениями (стр. 84). Технический отчет, NICTA.
  4. ^ «Битбакет».
  5. ^ Poya, Roman и Gil, Antonio J. и Ortigosa, Rogelio (2017). «Высокопроизводительная структура параллельной тензорной контракции данных: применение к связанной электромеханике». Computer Physics Communications . 216 : 35–52 . Bibcode : 2017CoPhC.216...35P. doi : 10.1016/j.cpc.2017.02.016.{{cite journal}}: CS1 maint: несколько имен: список авторов ( ссылка )
  6. ^ Gough, B. (2009). Справочное руководство по научной библиотеке GNU. Network Theory Ltd.
  7. ^ Андерсон, Э., Бай, З., Бишоф, К., Блэкфорд, С., Донгарра, Дж., Дю Кроз, Дж., ... и Соренсен, Д. (1999). LAPACK Руководство пользователя. СИАМ.
  8. ^ 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.
  9. ^ Джонс, Э., Олифант, Т. и Петерсон, П. (2001). SciPy: Научные инструменты с открытым исходным кодом для Python.
  10. ^ Брессерт, Э. (2012). SciPy и NumPy: обзор для разработчиков. "O'Reilly Media, Inc.".
  11. ^ Бланко-Силва, Ф. Дж. (2013). Изучение SciPy для численных и научных вычислений. Packt Publishing Ltd.
  12. ^ "Xtensor-stack/Xtensor". GitHub . 13 февраля 2022 г.
Взято с "https://en.wikipedia.org/w/index.php?title=Сравнение_библиотек_линейной_алгебры&oldid=1206414147"