Список числовых библиотек
Это список числовых библиотек , которые используются при разработке программного обеспечения для выполнения численных расчетов. Это не полный список, а список числовых библиотек со статьями в Википедии, за некоторыми исключениями.
Выбор типичной библиотеки зависит от ряда требований, таких как: желаемые функции (например, линейная алгебра больших размерностей, параллельные вычисления, уравнения в частных производных), лицензирование, читаемость API, переносимость или зависимость от платформы/компилятора (например, Linux, Windows, Visual C++, GCC), производительность, простота использования, постоянная поддержка со стороны разработчиков, соответствие стандартам, специализированная оптимизация кода для конкретных сценариев приложений или даже размер устанавливаемой базы кода.
Многоязычность [ править ]
- ALGLIB — это библиотека численного анализа с открытым исходным кодом, которую можно использовать из C++, C#, FreePascal, Delphi, VBA.
- ArrayFire — это высокопроизводительная программная библиотека с открытым исходным кодом для параллельных вычислений с простым в использовании API.
- Числовые библиотеки IMSL — это библиотеки функций численного анализа, реализованные на стандартных языках программирования, таких как C, Java, C# .NET, Fortran и Python.
- Библиотека NAG представляет собой набор математических и статистических процедур для нескольких языков программирования (C, C++, Fortran, Visual Basic, Java, Python и C#) и пакетов (MATLAB, Excel, R, LabVIEW).
- GNU Octave — это язык программирования высокого уровня и библиотека с открытым исходным кодом, включающая интерфейс командной строки и графический интерфейс пользователя, аналог коммерческих альтернатив, таких как Maple, MATLAB, Mathematica и т. д. API, функции и библиотеки можно вызывать со многих платформ, включая высокоуровневые. инженерные программы, функции которых во многих случаях легко интерпретируются и интегрируются аналогично MATLAB. Его также можно использовать с пакетной ориентацией.
- librsb — это библиотека с открытым исходным кодом для высокопроизводительных вычислений с разреженными матрицами, предоставляющая многопоточные примитивы для создания итеративных решателей (также реализует стандарт Sparse BLAS ). Его можно использовать из C, C++, Fortran и специального пакета GNU Octave .
С [ править ]
- BLOPEX (Block Locally Optimal Preconditional Eigenvalue Xolvers) — это с открытым исходным кодом библиотека для масштабируемого ( параллельного ) решения задач на собственные значения.
- FFTW (самое быстрое преобразование Фурье на Западе) — это программная библиотека для вычисления Фурье и связанных с ним преобразований.
- GNU Scientific Library — популярная бесплатная библиотека численного анализа, реализованная C. на
- GNU Multi-Precision Library — это библиотека для выполнения арифметических операций произвольной точности .
- hypre (High Performance Preconditioners) — это с открытым исходным кодом библиотека подпрограмм для масштабируемого ( параллельного ) решения линейных систем и предварительной подготовки.
- LabWindows/CVI — это ANSI C IDE , которая включает встроенные библиотеки для анализа необработанных данных измерений, генерации сигналов, управления окнами, функций фильтрации, обработки сигналов, линейной алгебры, массивов и сложных операций, подбора кривых и статистики.
- Lis — масштабируемая параллельная библиотека для решения систем линейных уравнений и задач собственных значений с использованием итерационных методов.
- Intel MKL (Библиотека математического ядра) содержит оптимизированные математические процедуры для научных, инженерных и финансовых приложений и написана на C/C++ и Fortran. Основные математические функции включают BLAS, LAPACK, ScaLAPACK, разреженные решатели, быстрые преобразования Фурье и векторную математику.
- Intel IPP — это многопоточная программная библиотека функций для приложений мультимедиа и обработки данных.
- OpenBLAS — это реализация BLAS API с открытым исходным кодом и множеством оптимизаций, созданных вручную для конкретных типов процессоров. Он работает аналогично Intel MKL на процессорах Intel и выше на других процессорах.
- Портативный расширяемый набор инструментов для научных вычислений (PETSc) представляет собой набор структур данных и процедур для масштабируемого ( параллельного ) решения научных приложений, моделируемых уравнениями в частных производных .
- Масштабируемая библиотека SLEPc для вычислений задач собственных значений — это PETSc на основе с открытым исходным кодом библиотека для масштабируемого ( параллельного ) решения задач собственных значений.
- UMFPACK — это библиотека для решения разреженных линейных систем, написанная на Ansi C. Это бэкэнд для разреженных матриц в MATLAB и SciPy .
С++ [ править ]
- Adept — это комбинированная библиотека автоматического дифференцирования и массивов .
- Advanced Simulation Library — это бесплатное программное обеспечение для мультифизического моделирования с открытым исходным кодом и аппаратным ускорением, оснащенное внутренним вычислительным механизмом на базе OpenCL .
- ALGLIB — это коммерческая библиотека численного анализа с открытым исходным кодом и версией C++.
- Armadillo — это библиотека линейной алгебры C++ (матричная и векторная математика), целью которой является обеспечение хорошего баланса между скоростью и простотой использования. [1] Он использует классы шаблонов и имеет дополнительные ссылки на BLAS и LAPACK. Синтаксис ( API ) аналогичен MATLAB .
- Blitz++ — это высокопроизводительная библиотека векторной математики, написанная на C++.
- Библиотеки Boost.uBLAS C++ для численных вычислений
- Deal.II — это библиотека, поддерживающая все решения уравнений в частных производных методом конечных элементов.
- Dlib — это современная библиотека C++ с простыми в использовании инструментами линейной алгебры и оптимизации, использующими оптимизированные библиотеки BLAS и LAPACK.
- Eigen — это библиотека векторной математики, производительность которой сравнима с библиотекой ядра Intel Math Kernel.
- Проект Hermes : библиотека C++/Python для быстрого создания прототипов адаптивных в пространстве и пространстве-времени решателей hp-FEM.
- IML++ — это библиотека C++ для решения линейных систем уравнений, способная работать с плотными, разреженными и распределенными матрицами.
- IT++ — это библиотека C++ для линейной алгебры (матрицы и векторы), обработки сигналов и связи. Функциональность аналогична MATLAB и Octave.
- LAPACK++ — библиотека-оболочка C++ для LAPACK и BLAS.
- MFEM — это бесплатная, легкая и масштабируемая библиотека C++ для методов конечных элементов .
- Intel MKL , библиотека Intel Math Kernel Library (на C и C++), библиотека оптимизированных математических процедур для научных, инженерных и финансовых приложений, написанная на C/C++ и Fortran. Основные математические функции включают BLAS, LAPACK, ScaLAPACK, разреженные решатели, быстрые преобразования Фурье и векторную математику.
- mlpack — это библиотека с открытым исходным кодом для машинного обучения, использующая возможности языка C++ для обеспечения максимальной производительности и гибкости, а также простой и согласованный API.
- MTL4 — это универсальная библиотека шаблонов C++, обеспечивающая разреженную и плотную функциональность BLAS. MTL4 имеет интуитивно понятный интерфейс (похожий на MATLAB ) и широкую применимость благодаря универсальному программированию .
- Библиотека NAG имеет API C++.
- NTL — это библиотека C++ для теории чисел.
- OpenFOAM — это библиотека C++ с открытым исходным кодом для решения уравнений в частных производных в вычислительной гидродинамике (CFD).
- Код SU2 — это библиотека с открытым исходным кодом для решения уравнений в частных производных с помощью метода конечных объемов или конечных элементов.
- Trilinos — это попытка разработать алгоритмы и технологии для решения крупномасштабных, сложных мультифизических инженерных и научных задач. Это набор пакетов .
Делфи [ править ]
- ALGLIB — библиотека численного анализа с открытым исходным кодом.
Языки .NET Framework C# , F# , VB.NET и PowerShell [ править ]
- Accord.NET — это коллекция библиотек для научных вычислений, включая числовую линейную алгебру, оптимизацию, статистику, искусственные нейронные сети, машинное обучение, обработку сигналов и компьютерное зрение. LGPLv3, частично GPLv3.
- AForge.NET — это библиотека компьютерного зрения и искусственного интеллекта. Он реализует ряд алгоритмов генетики, нечеткой логики и машинного обучения с несколькими архитектурами искусственных нейронных сетей с соответствующими алгоритмами обучения. LGPLv3 и частично GPLv3.
- ALGLIB — это библиотека численного анализа с открытым исходным кодом версии C#. Двойная лицензия: GPLv2+, коммерческая лицензия.
- ILNumerics.Net Коммерческие высокопроизводительные, типобезопасные классы числовых массивов и функции для общей математики, БПФ и линейной алгебры, предназначены для .NET/моно, 32 и 64 бит, синтаксис, подобный сценариям, на C#, элементы управления 2D и 3D графиками, эффективное управление памятью.
- Числовые библиотеки IMSL имеют версию C# (под коммерческой лицензией). IMSL .Net объявили о прекращении поддержки в конце 2020 года.
- Цель Math.NET Numerics — предоставить методы и алгоритмы для числовых вычислений в науке, технике и повседневном использовании. Рассматриваемые темы включают специальные функции, линейную алгебру, вероятностные модели, случайные числа, интерполяцию, интегральные преобразования и многое другое. Бесплатное программное обеспечение по лицензии MIT/X11.
- Measurement Studio — это коммерческий интегрированный пакет элементов управления пользовательского интерфейса и библиотек классов для использования при разработке приложений для испытаний и измерений. Библиотеки классов анализа обеспечивают различную цифровую обработку сигналов, фильтрацию сигналов, генерацию сигналов, обнаружение пиков и другие общие математические функции.
- ML.NET — это бесплатная машинного обучения библиотека для языка программирования C# . [2] [3]
- Библиотека NAG имеет API C#. Коммерческая лицензия.
- NMath от CenterSpace Software : коммерческие библиотеки числовых компонентов для платформы .NET, включая классы обработки сигналов (FFT), структуру линейной алгебры (LAPACK и BLAS) и пакет статистики.
Фортран [ править ]
- BLAS (Basic Linear Algebra Subprograms) — это де-факто стандарт интерфейса прикладного программирования для публикации библиотек для выполнения основных операций линейной алгебры, таких как умножение векторов и матриц .
- CERNLIB — это коллекция библиотек и модулей FORTRAN 77 .
- EISPACK — это программная библиотека для численного расчета собственных значений и собственных векторов матриц. [4] написано на ФОРТРАНЕ . Он содержит подпрограммы для вычисления собственных значений девяти классов матриц : комплексных общих, комплексных эрмитовых , вещественных общих, вещественных симметричных, вещественных симметричных полосовых , вещественных симметричных трехдиагональных, специальных вещественных трехдиагональных, обобщенных вещественных и обобщенных вещественных симметричных матриц.
- Числовые библиотеки IMSL — это кроссплатформенные библиотеки, содержащие полный набор математических и статистических функций, которые могут быть встроены в пользовательское приложение.
- Библиотека подпрограмм Harwell представляет собой набор кодов Fortran 77 и 95, которые решают основные проблемы численного анализа.
- ЛАПАК , [5] [6] — ПАКЕТ линейной алгебры это библиотека программного обеспечения для численных вычислений, первоначально написанная на FORTRAN 77 , а теперь написанная на Fortran 90 .
- LINPACK программного обеспечения — это библиотека для выполнения численной линейной алгебры на цифровых компьютерах. [7] [8] [9] Он был написан на Фортране Джеком Донгаррой , Джимом Банчем, Кливом Молером и Питом Стюартом и предназначался для использования на суперкомпьютерах в 1970-х и начале 1980-х годов. Его в значительной степени заменил LAPACK , который будет более эффективно работать на современных архитектурах.
- Lis — масштабируемая параллельная библиотека для решения систем линейных уравнений и задач собственных значений с использованием итерационных методов.
- MINPACK — это библиотека подпрограмм FORTRAN для решения систем нелинейных уравнений или наименьших квадратов . минимизации невязки набора линейных или нелинейных уравнений методом
- Библиотека NAG Fortran — это коллекция математических и статистических программ для Fortran.
- NOVAS — это программная библиотека для численных вычислений, связанных с астрометрией. как на Fortran , так и на C. Доступны версии
- Netlib — это репозиторий программного обеспечения для научных вычислений, который содержит большое количество отдельных программ и библиотек, включая BLAS , EISPACK , LAPACK и другие.
- PAW — бесплатный пакет анализа данных , разработанный в CERN .
- Портативный расширяемый набор инструментов для научных вычислений ( PETSc ) представляет собой набор структур данных и процедур для масштабируемого ( параллельного ) решения научных приложений, моделируемых уравнениями в частных производных .
- QUADPACK — это библиотека FORTRAN 77 для численного интегрирования одномерных функций.
- SLATEC — это библиотека FORTRAN 77 , содержащая более 1400 математических и статистических процедур общего назначения.
- SOFA — это набор подпрограмм, реализующих официальные IAU алгоритмы для астрономических вычислений. как на Fortran , так и на C. Доступны версии
- ARPACK — это набор подпрограмм Fortran77, предназначенных для решения крупномасштабных задач на собственные значения.
- BLIS — это платформа с открытым исходным кодом для реализации расширенного набора функций BLAS для определенных типов процессоров, которая была удостоена премии Дж. Х. Уилкинсона в области числового программного обеспечения .
Ява [ править ]
- Apache Commons — это открытый исходный код для создания повторно используемых компонентов Java. Он имеет числовые пакеты для линейной алгебры и нелинейной оптимизации.
- Colt предоставляет набор библиотек с открытым исходным кодом для высокопроизводительных научных и технических вычислений.
- Efficient Java Matrix Library (EJML) — это библиотека линейной алгебры с открытым исходным кодом для управления плотными матрицами.
- JAMA — набор инструментов числовой линейной алгебры для языка программирования Java . С 2005 года активная разработка не велась, но это по-прежнему один из самых популярных пакетов линейной алгебры на Java.
- Jblas: Linear Algebra для Java , библиотека линейной алгебры, которая представляет собой простую в использовании оболочку BLAS и LAPACK .
- Parallel Colt — это библиотека с открытым исходным кодом для научных вычислений. Параллельное продолжение Colt .
- Matrix Toolkit Java — библиотека линейной алгебры, основанная на BLAS и LAPACK .
- ojAlgo — это Java-библиотека с открытым исходным кодом для математики, линейной алгебры и оптимизации.
- exp4j — небольшая библиотека Java для вычисления математических выражений.
- SuanShu — это математическая библиотека Java с открытым исходным кодом. Он поддерживает численный анализ, статистику и оптимизацию.
- Maja — это Java-библиотека с открытым исходным кодом, ориентированная в первую очередь на правильную реализацию различных специальных функций .
Перл [ править ]
- Язык данных Perl дает стандартному Perl возможность компактно хранить и быстро манипулировать большими N -мерными массивами данных. [10] Он может выполнять сложные и матричные математические вычисления и имеет интерфейсы для научной библиотеки GNU , LINPACK , PROJ и построения графиков с помощью PGPLOT . Есть библиотеки на CPAN, добавляющие поддержку библиотеки линейной алгебры LAPACK , [11] библиотека преобразований Фурье FFTW , [12] и построение графика с помощью gnuplot , [13] и PLplot . [14]
Питон [ править ]
- NumPy , библиотека под лицензией BSD, которая добавляет поддержку манипуляций с большими многомерными массивами и матрицами; он также включает в себя большую коллекцию математических функций высокого уровня. NumPy служит основой для ряда других числовых библиотек, в частности SciPy . Де-факто стандарт для матричных/тензорных операций в Python.
- Pandas — библиотека для манипулирования и анализа данных.
- SageMath — это крупное математическое программное приложение, которое объединяет работу почти 100 проектов бесплатного программного обеспечения и поддерживает линейную алгебру, комбинаторику, числовую математику, исчисление и многое другое. [15]
- SciPy , [16] [17] [18] большая библиотека научных инструментов, лицензированная BSD. Де-факто стандарт научных вычислений на Python.
- ScientificPython , библиотека с различным набором научных инструментов.
- SymPy — библиотека, основанная на лицензии New BSD для символьных вычислений. Возможности Sympy варьируются от базовой символьной арифметики до исчисления, алгебры, дискретной математики и квантовой физики.
Другие [ править ]
- XNUMBERS — вычисления с плавающей запятой различной точности и числовые методы для Microsoft Excel .
- INTLAB – библиотека интервальной арифметики для MATLAB . [19] [20] [21] [22]
См. также [ править ]
- Список систем компьютерной алгебры
- Сравнение программного обеспечения для численного анализа
- Список программного обеспечения для информационной графики
- Список программного обеспечения для численного анализа
- Список программного обеспечения для оптимизации
- Список статистического программного обеспечения
Ссылки [ править ]
- ^ Сандерсон, К., и Кертин, Р. (2016). Armadillo: основанная на шаблонах библиотека C++ для линейной алгебры. Журнал программного обеспечения с открытым исходным кодом, 1 (2), 26.
- ^ Дэвид Рамель (08 мая 2018 г.). «Кроссплатформенная ML.NET с открытым исходным кодом упрощает машинное обучение — журнал Visual Studio» . Журнал Visual Studio . Проверено 10 мая 2018 г.
- ^ Карим Андерсон (9 мая 2017 г.). «Microsoft представляет кроссплатформенную среду машинного обучения ML.NET» . На MSFT . Проверено 10 мая 2018 г.
- ^ Смит, Б.Т., Бойл, Дж.М., Гарбоу, Б.С., Икебе, Ю., Клема, В.К., и Молер, CB (2013). Подпрограммы собственных систем матрицы - руководство EISPACK (Том 6). Спрингер.
- ^ Андерсон, Э., Бай, З., Бишоф, К., Блэкфорд, С., Донгарра, Дж., Дю Кроз, Дж., ... и Соренсен, Д. (1999). Руководство пользователя LAPACK (Том 9). СИАМ.
- ^ Деммель, Дж. (1989, декабрь). LAPACK: портативная библиотека линейной алгебры для суперкомпьютеров. На семинаре Общества систем управления IEEE по проектированию систем автоматизированного управления (стр. 1-7). IEEE.
- ^ Донгарра, Джей-Джей, Молер, CB, Банч, JR, и Стюарт, GW (1979). Руководство пользователя LINPACK. Общество промышленной и прикладной математики.
- ^ Донгарра, Дж. Дж., Лущек, П. и Петитет, А. (2003). Тест LINPACK: прошлое, настоящее и будущее. Параллелизм и вычисления: практика и опыт, 15 (9), 803-820.
- ^ Донгарра, Джей-Джей (1987, июнь). Тест LINPACK: объяснение. На Международной конференции по суперкомпьютерам (стр. 456-474). Шпрингер, Берлин, Гейдельберг.
- ^ «Язык данных Perl — Metacpan.org» . 26 июля 2021 г.
- ^ «PDL::LinearAlgebra — утилиты линейной алгебры для PDL — Metacpan.org» . 26 июля 2021 г.
- ^ «PDL::FFTW3 — интерфейс PDL для самого быстрого преобразования Фурье на Западе — Metacpan.org» . 26 июля 2021 г.
- ^ «PDL::Graphics::Gnuplot — построение графиков на основе Gnuplot для PDL — Metacpan.org» . 26 июля 2021 г.
- ^ «PDL::Graphics::PLplot — Объектно-ориентированный интерфейс от perl/PDL к библиотеке построения графиков PLPLOT — Metacpan.org» . 26 июля 2021 г.
- ^ Циммерманн, П., Касамайу, А., Коэн, Н., Коннан, Г., Дюмон, Т., Фусс, Л., ... и Брей, Э. (2018). Вычислительная математика с SageMath. СИАМ.
- ^ Джонс Э., Олифант Т. и Петерсон П. (2001). SciPy: научные инструменты с открытым исходным кодом для Python.
- ^ Брессерт, Э. (2012). SciPy и NumPy: обзор для разработчиков. «О'Рейли Медиа, Инк.».
- ^ Бланко-Сильва, FJ (2013). Изучение SciPy для численных и научных вычислений. ООО «Пакт Паблишинг»
- ^ SM Rump: INTLAB - INterval LAboratory. Тибор Цендес, редактор, «Разработки в области надежных вычислений», страницы 77–104. Kluwer Academic Publishers, Дордрехт, 1999.
- ^ Мур, Р.Э., Кирфотт, РБ, и Клауд, MJ (2009). Введение в интервальный анализ. Общество промышленной и прикладной математики.
- ^ Рамп, С.М. (2010). Методы проверки: строгие результаты с использованием арифметики с плавающей запятой. Acta Numerica, 19, 287–449.
- ^ Харгривз, GI (2002). Интервальный анализ в MATLAB . Численные алгоритмы, (2009.1).
Внешние ссылки [ править ]
- The Math Forum — Math Libraries , обширный список математических библиотек с краткими описаниями.