WikiDer > Сравнение библиотек линейной алгебры
В следующих таблицах приводится сравнение линейная алгебра программные библиотеки, специализированные или универсальные библиотеки со значительным охватом линейной алгебры.
Плотная линейная алгебра
Общая информация
Создатель | Язык | Первый публичный релиз | Последняя стабильная версия | Доступность исходного кода | Лицензия | Примечания | |
---|---|---|---|---|---|---|---|
АЛГЛИБ[1] | Проект ALGLIB | C ++, C #, FreePascal, VBA | 2006 | 3.12.0 / 08.2017 | Свободный | GPL / коммерческий | Библиотека численного анализа общего назначения с интерфейсами C ++ и C #. |
АТЛАС | R. Clint Whaley et al. | C | 2001 | 3.10.3 / 07.2016 | Свободный | BSD | Автоматически настраиваемая реализация BLAS. Также включает разложения LU и Холецкого. |
Длиб | Дэвис Э. Кинг | C ++ | 2006 | 19.7 / 09/2017 | Свободный | Способствовать росту | Библиотека шаблонов C ++; связывается с оптимизированным BLAS, таким как Intel MKL; Включает разложение матриц, нелинейные решатели и инструменты машинного обучения |
Научная библиотека GNU[2] | Проект GNU | C, C ++ | 1996 | 2.5 / 06.2018 | Свободный | GPL | Библиотека численного анализа общего назначения. Включает некоторую поддержку линейной алгебры. |
Цифровые библиотеки IMSL | Программное обеспечение Rogue Wave | C, Java, C #, Фортран, Python | 1970 | многие компоненты | Несвободный | Проприетарный | Библиотека численного анализа общего назначения. |
ЛАПАК[3][4] | Фортран | 1992 | 3.9.0 / 11.2019 | Свободный | 3-пункт BSD | Библиотека числовой линейной алгебры с долгой историей | |
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[5][6][7] | Задумался | Python | 2001 | 1.0.0 / 10.2017 | Свободный | BSD | На основе Python |
Эйген | Бенуа Жакоб | C ++ | 2008 | 3.3.7 / 12.2018 | Свободный | MPL2 | Eigen - это библиотека шаблонов C ++ для линейной алгебры: матриц, векторов, числовых решателей и связанных алгоритмов. |
Armadillo[8][9] | НИКТА | C ++ | 2009 | 9.200 / 10.2018 | Свободный | Лицензия Apache 2.0 | Библиотека шаблонов C ++ для линейной алгебры; включает различные декомпозиции и факторизации; синтаксис (API) похоже на MATLAB. |
librsb | Мишель Мартоне | C, Фортран, M4 | 2011 | 1.2 / сентябрь 2016 г. | Свободный | GPL | Высокопроизводительные многопоточные примитивы для больших разреженных матриц. Поддержка операций для итерационных решателей: умножение, треугольное решение, масштабирование, ввод-вывод матрицы, рендеринг матрицы. Множество вариантов: например: симметричный, эрмитовый, комплексный, четырехкратной точности. |
Типы матриц и операции
Типы матриц (специальные типы, такие как двунаправленная / трехдиагональная, не перечислены):
- Настоящий - общие (несимметричные) действительные
- Сложный - общий (несимметричный) комплекс
- СПД - симметричный положительно определенный (действительный)
- HPD - эрмитово положительно определенное (комплексное)
- SY - симметричный (настоящий)
- ОН - Эрмитский (комплексный)
- BND - группа
Операции:
- TF - треугольные факторизации (LU, Холецкий)
- ИЗ - ортогональные факторизации (QR, QL, обобщенные факторизации)
- EVP - задачи на собственные значения
- СВД – разложение по сингулярным числам
- GEVP - обобщенный EVP
- GSVD – генерализованная СВД
Настоящий | Сложный | СПД | HPD | SY | ОН | BND | TF | ИЗ | EVP | СВД | GEVP | GSVD | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
АЛГЛИБ | да | да | да | да | Нет | Нет | Нет | да | да | да | да | да | Нет |
АТЛАС | да | да | да | да | Нет | Нет | Нет | да | Нет | Нет | Нет | Нет | Нет |
Длиб | да | да | да | да | да | да | Нет | да | да | да | да | Нет | Нет |
Научная библиотека GNU | да | да | да | да | Нет | Нет | Нет | да | да | да | да | да | Нет |
ILNumerics.Net | да | да | да | да | Нет | Нет | Нет | да | да | да | да | Нет | Нет |
Цифровые библиотеки IMSL | да | да | да | да | Нет | Нет | да | да | Нет | да | да | да | Нет |
ЛАПАК | да | да | да | да | да | да | да | да | да | да | да | да | да |
MKL | да | да | да | да | да | да | да | да | да | да | да | да | да |
Цифровая библиотека NAG | да | да | да | да | да | да | да | да | да | да | да | да | да |
NMath | да | да | да | да | да | да | да | да | да | да | да | Нет | Нет |
SciPy (Пакеты Python) | да | да | да | да | Нет | Нет | Нет | да | да | да | да | Нет | Нет |
Эйген | да | да | да | да | да | да | да | да | да | да | да | да | Нет |
Armadillo | да | да | да | да | да | да | Нет | да | да | да | да | да | Нет |
Рекомендации
- ^ Бочканов, С., Быстрицкий, В. (2011). ALGLIB - кроссплатформенная библиотека для численного анализа и обработки данных. Проект ALGLIB. Новгород, Россия.
- ^ Гоф, Б. (2009). Справочное руководство по научной библиотеке GNU. Network Theory Ltd.
- ^ Андерсон, Э., Бай, З., Бишоф, К., Блэкфорд, С., Донгарра, Дж., Дю Кроз, Дж., ... и Соренсен, Д. (1999). LAPACK Руководство пользователя. СИАМ.
- ^ Андерсон, Э., Бай, З., Донгарра, Дж., Гринбаум, А., МакКенни, А., Дю Кроз, Дж., ... и Соренсен, Д. (1990, ноябрь). LAPACK: портативная библиотека линейной алгебры для высокопроизводительных компьютеров. В материалах конференции ACM / IEEE 1990 г. по суперкомпьютерам (стр. 2–11). IEEE Computer Society Press.
- ^ Джонс, Э., Олифант, Т., и Петерсон, П. (2001). SciPy: научные инструменты с открытым исходным кодом для Python.
- ^ Брессерт, Э. (2012). SciPy и NumPy: обзор для разработчиков. "O'Reilly Media, Inc.".
- ^ Бланко-Сильва, Ф. Дж. (2013). Изучение SciPy для числовых и научных вычислений. Packt Publishing Ltd.
- ^ Сандерсон, К., и Кертин, Р. (2016). Armadillo: основанная на шаблонах библиотека C ++ для линейной алгебры. Журнал программного обеспечения с открытым исходным кодом, 1 (2), 26.
- ^ Сандерсон, К. (2010). Armadillo: библиотека линейной алгебры C ++ с открытым исходным кодом для быстрого прототипирования и экспериментов с интенсивными вычислениями (стр. 84). Технический отчет, NICTA.