Сравнение библиотек линейной алгебры
В следующих таблицах представлено сравнение линейной алгебры библиотек программного обеспечения , как специализированных, так и библиотек общего назначения со значительным охватом линейной алгебры.
алгебра линейная Плотная
Общая информация [ править ]
Создатель | Язык | Первый публичный релиз | Последняя стабильная версия | Доступность исходного кода | Лицензия | Примечания | |
---|---|---|---|---|---|---|---|
АЛГЛИБ [1] | Проект АЛГЛИБ | С++, С#, Питон, FreePascal | 2006 | 4.00.0 / 05.2023 | Бесплатно | GPL/коммерческая лицензия | Библиотека численного анализа общего назначения с интерфейсами C++, C#, Python, FreePascal. |
Броненосец [2] [3] | Никта | С++ | 2009 | 12.6.6 / 10.2023 | Бесплатно | Лицензия Апач 2.0 | библиотека шаблонов C++ для линейной алгебры; включает в себя различные разложения и факторизации; синтаксис ( API ) аналогичен MATLAB . |
АТЛАС | Р. Клинт Уэйли и др. | С | 2001 | 3.10.3 / 07.2016 | Бесплатно | БСД | Автоматически настраиваемая реализация BLAS. Также включает разложения LU и Холецкого. |
Блейз [4] | К. Иглбергер и др. | С++ | 2012 | 3.8 / 08.2020 | Бесплатно | БСД | Blaze — это высокопроизводительная математическая библиотека C++ с открытым исходным кодом для плотных и разреженных арифметических операций. |
Блиц++ | Тодд Вельдхуизен | С++ | ? | 1.0.2 / 10.2019 | Бесплатно | лицензия GPL | Blitz++ — это библиотека классов шаблонов C++, которая предоставляет высокопроизводительные контейнеры многомерных массивов для научных вычислений. |
Повышение uBLAS | Дж. Уолтер, М. Кох | С++ | 2000 | 1.84.0 / 12.2023 | Бесплатно | Лицензия на программное обеспечение Boost | uBLAS — это библиотека классов шаблонов C++, которая обеспечивает функциональность BLAS уровня 1, 2, 3 для плотных, упакованных и разреженных матриц. |
Длиб | Дэвис Э. Кинг | С++ | 2006 | 19.24.2 / 05.2023 | Бесплатно | Способствовать росту | библиотека шаблонов C++; привязывается к оптимизированному BLAS, например Intel MKL; Включает в себя матричное разложение, нелинейные решатели и инструменты машинного обучения. |
Собственный | Бенедикт Джейкоб | С++ | 2008 | 3.4.0 / 08.2021 | Бесплатно | МПЛ2 | Eigen — это библиотека шаблонов C++ для линейной алгебры: матрицы, векторы, числовые решатели и связанные алгоритмы. |
Фастор [5] | Р. Пойя, Эй Джей Гил и Р. Ортигоса | С++ | 2016 | 0.6.4 / 06.2023 | Бесплатно | МОЯ лицензия | Fastor — это высокопроизводительная библиотека тензоров (фиксированных многомерных массивов) для современного C++. |
Научная библиотека ГНУ [6] | Проект GNU | С, С++ | 1996 | 2.7.1 / 11.2021 | Бесплатно | лицензия GPL | Библиотека численного анализа общего назначения. Включает некоторую поддержку линейной алгебры. |
Числовые библиотеки IMSL | Программное обеспечение Rogue Wave | C, Java, C#, Фортран, Питон | 1970 | много компонентов | Несвободный | Собственный | Библиотека численного анализа общего назначения. |
ЛАПАК [7] [8] | Фортран | 1992 | 3.12.0 / 11.2023 | Бесплатно | 3-пунктовый BSD | Библиотека числовой линейной алгебры с долгой историей. | |
библиотека | Мишель Мартоне | С, Фортран, М4 | 2011 | 1.2.0 / 09.2016 | Бесплатно | лицензия GPL | Высокопроизводительные многопоточные примитивы для больших разреженных матриц. Поддержка операций для итеративных решателей: умножение, треугольное решение, масштабирование, матричный ввод-вывод, матричный рендеринг. Множество вариантов: например: симметричная, эрмитова, комплексная, четырехкратная точность. |
одинMKL | Интел | С, С++, Фортран | 2003 | 2023.1 / 03.2023 | Несвободный | Упрощенная лицензия на программное обеспечение Intel | Библиотека численного анализа, оптимизированная для процессоров и графических процессоров Intel. Реализация эталонного API на основе C++ SYCL доступна в исходном коде бесплатно. |
Числовые значения Math.NET | К. Рюгг, М. Куда и др. | С# | 2009 | 5.0.0 / 04.2022 | Бесплатно | МОЯ лицензия | Библиотека численного анализа C# с поддержкой линейной алгебры |
Библиотека шаблонов матриц | Джереми Зик, Питер Готшлинг, Эндрю Ламсдейн и др. | С++ | 1998 | 4.0 / 2018 | Бесплатно | Boost Лицензия на программное обеспечение | Высокопроизводительная библиотека линейной алгебры C++, основанная на универсальном программировании. |
Цифровая библиотека НАГ | Группа числовых алгоритмов | С, Фортран | 1971 | много компонентов | Несвободный | Собственный | Библиотека численного анализа общего назначения. |
NMath | Программное обеспечение ЦентрСпейс | С# | 2003 | 7.1 / 12.2019 | Несвободный | Собственный | Математические и статистические библиотеки для .NET Framework |
SciPy [9] [10] [11] | Мысль | Питон | 2001 | 1.11.1 / 6.2023 | Бесплатно | БСД | На основе Python |
Кстензор [12] | С. Корлей, В. Фоллпрехт, Дж. Мабилль и др. | С++ | 2016 | 0.21.10 / 11.2020 | Бесплатно | 3-пунктовый BSD | Xtensor — это библиотека C++, предназначенная для численного анализа с использованием выражений многомерных массивов, широковещательной передачи и ленивых вычислений. |
Типы матриц и операции [ править ]
Типы матриц (специальные типы, такие как двудиагональная/трехдиагональная, не указаны):
- Real – общее (несимметричное) действительное.
- Комплексный – общий (несимметричный) комплекс.
- СПД – симметричный положительно определенный (действительный)
- HPD – эрмитовский положительно определенный (комплексный)
- SY – симметричный (действительный)
- ОН – Эрмитиан (сложный)
- БНД - группа
Операции:
- TF – треугольные факторизации (ЛУ, Холецкий)
- OF – ортогональные факторизации (QR, QL, обобщенные факторизации)
- EVP – проблемы собственных значений
- SVD - разложение по сингулярным значениям
- GEVP – обобщенное EVP
- ГСВД – генерализованная СВД
Настоящий | Сложный | СПД | HPD | СИ | ОН | БНД | ТФ | ИЗ | Исполнительный вице-президент | СВД | ГЭВП | ГСВД | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
АЛГЛИБ | Да | Да | Да | Да | Нет | Нет | Нет | Да | Да | Да | Да | Да | Нет |
АТЛАС | Да | Да | Да | Да | Нет | Нет | Нет | Да | Нет | Нет | Нет | Нет | Нет |
Длиб | Да | Да | Да | Да | Да | Да | Нет | Да | Да | Да | Да | Нет | Нет |
Научная библиотека ГНУ | Да | Да | Да | Да | Нет | Нет | Нет | Да | Да | Да | Да | Да | Да |
ILNumerics.Net | Да | Да | Да | Да | Нет | Нет | Нет | Да | Да | Да | Да | Нет | Нет |
Числовые библиотеки IMSL | Да | Да | Да | Да | Нет | Нет | Да | Да | Нет | Да | Да | Да | Нет |
ЛАПАК | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
одинMKL | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
Цифровая библиотека НАГ | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
NMath | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Нет | Нет |
SciPy (пакеты Python) | Да | Да | Да | Да | Нет | Нет | Нет | Да | Да | Да | Да | Нет | Нет |
Собственный | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Нет |
Броненосец | Да | Да | Да | Да | Да | Да | Нет | Да | Да | Да | Да | Да | Нет |
Ссылки [ править ]
- ^ Бочканов С. и Быстрицкий В. (2011). ALGLIB — кроссплатформенная библиотека численного анализа и обработки данных. Проект АЛГЛИБ.
- ^ Сандерсон, К., и Кертин, Р. (2016). Armadillo: основанная на шаблонах библиотека C++ для линейной алгебры. Журнал программного обеспечения с открытым исходным кодом, 1 (2), 26.
- ^ Сандерсон, К. (2010). Armadillo: библиотека линейной алгебры C++ с открытым исходным кодом для быстрого прототипирования и экспериментов с интенсивными вычислениями (стр. 84). Технический отчет, НИКТА.
- ^ «Битбакет» .
- ^ Поя, Роман и Хил, Антонио Дж. и Ортигоса, Рохелио (2017). «Высокопроизводительная система параллельного тензорного сжатия данных: применение к связанной электромеханике» . Компьютерная физика. Коммуникации . 216 : 35–52. Бибкод : 2017CoPhC.216...35P . дои : 10.1016/j.cpc.2017.02.016 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Гоф, Б. (2009). Справочное руководство научной библиотеки GNU. Сетевая Теория, ООО
- ^ Андерсон, Э., Бай, З., Бишоф, К., Блэкфорд, С., Донгарра, Дж., Дю Кроз, Дж., ... и Соренсен, Д. (1999). Руководство пользователя LAPACK. СИАМ.
- ^ Андерсон, Э., Бай, З., Донгарра, Дж., Гринбаум, А., Маккенни, А., Дю Кроз, Дж., ... и Соренсен, Д. (1990, ноябрь). LAPACK: портативная библиотека линейной алгебры для высокопроизводительных компьютеров. В материалах конференции ACM/IEEE 1990 г. по суперкомпьютерам (стр. 2–11). Издательство Компьютерного общества IEEE.
- ^ Джонс Э., Олифант Т. и Петерсон П. (2001). SciPy: научные инструменты с открытым исходным кодом для Python.
- ^ Брессерт, Э. (2012). SciPy и NumPy: обзор для разработчиков. «О'Рейли Медиа, Инк.».
- ^ Бланко-Сильва, FJ (2013). Изучение SciPy для численных и научных вычислений. ООО «Пакт Паблишинг»
- ^ «Xtensor-стек/Xtensor» . Гитхаб . 13 февраля 2022 г.
Внешние ссылки [ править ]
- scipy на GitHub
- броненосец на GitHub
- mathnet-numerics на GitHub