Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Выбор типичной библиотеки зависит от разнообразных требований, таких как: желаемые характеристики (например: линейная алгебра больших размеров, параллельные вычисления, уравнения в частных производных), коммерческий / открытый исходный код, удобочитаемость API, переносимость или зависимость от платформы / компилятора ( например: Linux, Windows, Visual C ++, GCC), быстродействие, простота использования, постоянная поддержка со стороны разработчиков, соответствие стандартам, специализированная оптимизация кода для конкретных сценариев приложений или даже размер базы кода. установлены.

Поскольку мы находим исчерпывающие обзоры, которые редко доступны, почти всегда (по крайней мере, на начальном этапе) существует трудный выбор среди ряда возможных библиотек. Часто это делается на усмотрение пользователя, исходя из его собственного вкуса и удобства, только из-за отсутствия надлежащей информации.

Многоязычный [ править ]

  • ALGLIB - это библиотека численного анализа с открытым исходным кодом, которую можно использовать из C ++, C #, FreePascal, Delphi, VBA.
  • ArrayFire - это высокопроизводительная программная библиотека с открытым исходным кодом для параллельных вычислений с простым в использовании API.
  • IMSL Numerical Libraries - это библиотеки функций численного анализа, реализованные на стандартных языках программирования, таких как 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 .

C [ править ]

  • BLOPEX (Block Local Optimal Preconditioned Eigenvalue Xolvers) - это библиотека с открытым исходным кодом для масштабируемого ( параллельного ) решения проблем с собственными значениями.
  • FFTW (самое быстрое преобразование Фурье на Западе) - это программная библиотека для вычисления преобразований Фурье и связанных с ними преобразований.
  • GNU Scientific Library , популярный, бесплатный численный анализ библиотеки реализован в C .
  • GNU Multi-Precision Library - это библиотека для выполнения арифметических операций произвольной точности .
  • hypre (High Performance Предобработчики) является открытым исходным кодом библиотекой из подпрограмм для масштабируемых ( параллельных ) решений линейных систем и предобусловливания.
  • LabWindows / CVI - это среда разработки ANSI C, которая включает встроенные библиотеки для анализа необработанных данных измерений, генерации сигналов, работы с окнами, функций фильтрации, обработки сигналов, линейной алгебры, массивов и сложных операций, подбора кривой и статистики.
  • Lis - это масштабируемая параллельная библиотека для решения систем линейных уравнений и задач на собственные значения с использованием итерационных методов.
  • Intel MKL , Intel Math Kernel Library (на C), библиотека оптимизированных математических процедур для научных, инженерных и финансовых приложений, написанных на C / C ++ и Fortran. Основные математические функции включают BLAS, LAPACK, ScaLAPACK, разреженные решатели, быстрые преобразования Фурье и векторную математику.
  • Intel IPP
  • OpenBLAS - это реализация BLAS API с открытым исходным кодом со множеством вручную созданных оптимизаций для конкретных типов процессоров. Он работает аналогично Intel MKL на процессорах Intel и выше на различных других.
  • Portable Extensible Toolkit for Scientific Computing ( PETSc ) - это набор структур данных и процедур для масштабируемого ( параллельного ) решения научных приложений, моделируемых уравнениями в частных производных .
  • Масштабируемая библиотека SLEPc для вычисления задач на собственные значения - это библиотека с открытым исходным кодом на основе PETSc для масштабируемого ( параллельного ) решения задач на собственные значения.

C ++ [ править ]

  • Adept - это комбинированная библиотека автоматического дифференцирования и массивов .
  • Advanced Simulation Library - это бесплатное программное обеспечение для мультифизического моделирования с аппаратным ускорением и открытым исходным кодом с внутренним вычислительным механизмом на основе OpenCL .
  • ALGLIB - это коммерческая библиотека численного анализа с открытым исходным кодом с версией C ++.
  • Armadillo - это библиотека линейной алгебры C ++ (матричная и векторная математика), направленная на достижение хорошего баланса между скоростью и простотой использования. [1] Он использует классы шаблонов и имеет дополнительные ссылки на BLAS и LAPACK. Синтаксис ( API ) аналогичен MATLAB .
  • Blaze - это высокопроизводительная математическая библиотека C ++ с открытым исходным кодом для плотной и разреженной арифметики.
  • Blitz ++ - это высокопроизводительная библиотека векторной математики, написанная на C ++.
  • Библиотеки Boost.uBLAS C ++ для численных вычислений
  • deal.II - это библиотека, поддерживающая все решения уравнений в частных производных методом конечных элементов.
  • Dlib - это современная библиотека C ++ с простой в использовании линейной алгеброй и инструментами оптимизации, которые извлекают выгоду из оптимизированных библиотек BLAS и LAPACK.
  • Eigen - это библиотека векторной математики с производительностью, сопоставимой с библиотекой Intel Math Kernel Library.
  • Hermes Project : библиотека 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 библиотека имеет C ++ API
  • NTL - это библиотека C ++ для теории чисел.
  • Trilinos - это попытка разработать алгоритмы и обеспечивающие технологии для решения крупномасштабных, сложных мультифизических инженерных и научных проблем. Это набор пакетов .

Delphi [ править ]

  • Аналитика и физика: коммерческие библиотеки Delphi для символьных и числовых вычислений (включая символьные производные) и работы с физическими величинами и единицами измерения.
  • 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 есть C # API. Имеет коммерческую лицензию.
  • NMath от CenterSpace Software : коммерческие библиотеки числовых компонентов для платформы .NET, включая классы обработки сигналов (FFT), структуру линейной алгебры (LAPACK & BLAS) и пакет статистики.

Фортран [ править ]

  • BLAS (базовые подпрограммы линейной алгебры) - это де-факто стандарт интерфейса прикладного программирования для публикации библиотек для выполнения основных операций линейной алгебры, таких как умножение векторов и матриц .
  • CERNLIB - это набор библиотек и модулей FORTRAN 77 .
  • EISPACK это библиотека программного обеспечения для численного расчета из собственных и собственных векторов матриц, [4] написано в FORTRAN . Он содержит подпрограммы для вычисления собственных значений девяти классов матриц : комплексных общих, комплексных эрмитовых , вещественных общих, вещественных симметричных, вещественных симметричных полосчатых , вещественных симметричных трехдиагональных, специальных вещественных трехдиагональных, обобщенных вещественных и обобщенных вещественных симметричных матриц.
  • Числовые библиотеки IMSL - это кроссплатформенные библиотеки, содержащие полный набор математических и статистических функций, которые могут быть встроены в пользовательское приложение.
  • Библиотека подпрограмм Harwell - это набор кодов Fortran 77 и 95, которые решают основные проблемы численного анализа.
  • LAPACK , [5] [6] Линейная алгебра ПАКЕТ , является библиотекой программного обеспечения для численных вычислений , первоначально написанных в FORTRAN 77 и теперь написано в Fortran 90 .
  • LINPACK - это программная библиотека для выполнения числовой линейной алгебры на цифровых компьютерах. [7] [8] [9] Это было написано в Fortran от Джека Dongarra , Джим Банч, Клив Moler , и Пит Стюарт, и был предназначен для использования на суперкомпьютерах в 1970 - х и начале 1980 - х годов. Его в значительной степени вытеснил LAPACK , который будет более эффективно работать на современных архитектурах.
  • Lis - это масштабируемая параллельная библиотека для решения систем линейных уравнений и задач на собственные значения с использованием итерационных методов.
  • MINPACK - это библиотека подпрограмм FORTRAN для решения систем нелинейных уравнений или минимизации остатка набора линейных или нелинейных уравнений методом наименьших квадратов .
  • Библиотека NAG Fortran - это набор математических и статистических процедур для Fortran.
  • NOVAS - это программная библиотека для численных расчетов, связанных с астрометрией. Оба Fortran и C версии.
  • Netlib - это хранилище программного обеспечения для научных вычислений, которое содержит большое количество отдельных программ и библиотек, включая BLAS , EISPACK , LAPACK и другие.
  • PAW - это бесплатный пакет для анализа данных , разработанный в ЦЕРНе .
  • Portable Extensible Toolkit for Scientific Computing ( PETSc ) - это набор структур данных и процедур для масштабируемого ( параллельного ) решения научных приложений, моделируемых уравнениями в частных производных .
  • QUADPACK - это библиотека FORTRAN 77 для численного интегрирования одномерных функций.
  • SLATEC - это библиотека FORTRAN 77, содержащая более 1400 математических и статистических процедур общего назначения.
  • SOFA - это набор подпрограмм, реализующих официальные алгоритмы IAU для астрономических вычислений. Оба Fortran и C версии.
  • ARPACK - это набор подпрограмм Fortran77, предназначенных для решения крупномасштабных задач на собственные значения.

Java [ править ]

  • ND4J - это библиотека с открытым исходным кодом, которая поддерживает n-мерные (ND) массивы, аналогичные NumPy . Он работает на распределенных графических процессорах или кроссплатформенных процессорах и использует Spark для параллельных вычислений. Он поддерживает библиотеку глубокого обучения Deeplearning4j .
  • Apache Commons - это открытый исходный код для создания повторно используемых компонентов Java. Он имеет числовые пакеты для линейной алгебры и нелинейной оптимизации.
  • Colt предоставляет набор библиотек с открытым исходным кодом для высокопроизводительных научных и технических вычислений.
  • Efficient Java Matrix Library (EJML) - это библиотека линейной алгебры с открытым исходным кодом для управления плотными матрицами.
  • JAMA , набор инструментов числовой линейной алгебры для языка программирования Java . С 2005 года не велось активной разработки, но это все еще один из самых популярных пакетов линейной алгебры в Java.
  • Jblas: Linear Algebra for Java , библиотека линейной алгебры, которая представляет собой простую в использовании оболочку для BLAS и LAPACK .
  • jDSP , библиотека инструментов цифровой обработки сигналов, написанная на Java, направленная на обеспечение функций, доступных в пакете scipy-signal для Python.
  • Parallel Colt - это библиотека с открытым исходным кодом для научных вычислений. Параллельное продолжение Colt .
  • Matrix Toolkit Java - это библиотека линейной алгебры, основанная на BLAS и LAPACK .
  • ojAlgo - это библиотека Java с открытым исходным кодом для математики, линейной алгебры и оптимизации.
  • exp4j - небольшая библиотека Java для вычисления математических выражений.

Scala [ править ]

  • ND4S - это библиотека научных вычислений для Scala, которая включает поддержку n-мерных массивов на JVM.

Perl [ править ]

  • Perl Data Language дает стандартному Perl возможность компактно хранить и быстро управлять большими N- мерными массивами данных.

Python [ править ]

  • NumPy (ранее числовой) , библиотека под лицензией BSD, которая добавляет поддержку для работы с большими многомерными массивами и матрицами; он также включает в себя большой набор математических функций высокого уровня. NumPy служит основой для ряда других числовых библиотек, особенно для SciPy . Де-факто стандарт для матричных / тензорных операций в Python.
  • Pandas - библиотека для обработки и анализа данных.
  • SageMath - это большое математическое программное приложение, которое объединяет работу почти 100 проектов бесплатного программного обеспечения и поддерживает линейную алгебру, комбинаторику, численную математику, исчисление и многое другое. [10]
  • SciPy , [11] [12] [13] большая библиотека научных инструментов под лицензией BSD. Де-факто стандарт для научных вычислений на Python.
  • ScientificPython , библиотека с другим набором научных инструментов
  • SymPy , библиотека, основанная на новой лицензии BSD для символьных вычислений. Возможности Sympy варьируются от базовой символьной арифметики до исчисления, алгебры, дискретной математики и квантовой физики.

Другое [ править ]

  • XNUMBERS - Вычисления с плавающей запятой с высокой точностью и численные методы для Microsoft Excel .
  • INTLAB - Библиотека интервальной арифметики для MATLAB . [14] [15] [16] [17]

См. Также [ править ]

  • Сравнение систем компьютерной алгебры
  • Сравнение программ численного анализа
  • Список программного обеспечения для построения графиков
  • Список программного обеспечения для численного анализа
  • Список программного обеспечения для оптимизации
  • Список статистических пакетов

Ссылки [ править ]

  1. Перейти ↑ Sanderson, C., & Curtin, R. (2016). Armadillo: основанная на шаблонах библиотека C ++ для линейной алгебры. Журнал программного обеспечения с открытым исходным кодом, 1 (2), 26.
  2. ^ Дэвид Рамел (2018-05-08). «Кросс-платформенный ML.NET с открытым исходным кодом упрощает машинное обучение - журнал Visual Studio» . Журнал Visual Studio . Проверено 10 мая 2018 .
  3. ^ Карим Андерсон (2017-05-09). «Microsoft представляет кроссплатформенную платформу машинного обучения ML.NET» . На MSFT . Проверено 10 мая 2018 .
  4. ^ Смит, BT, Бойл, JM, Garbow, BS, Ikebe, Y., Klema, VC, и Moler, CB (2013). Матричные подпрограммы собственной системы - руководство EISPACK (Том 6). Springer.
  5. Перейти ↑ Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., ... & Sorensen, D. (1999). Руководство пользователя LAPACK (Том 9). СИАМ.
  6. ^ Demmel, J. (1989, декабрь). LAPACK: портативная библиотека линейной алгебры для суперкомпьютеров. На семинаре Общества систем управления IEEE по проектированию автоматизированных систем управления (стр. 1-7). IEEE.
  7. ^ Dongarra, JJ, Moler, CB, гроздь, JR, и Стюарт, GW (1979). Руководство пользователя LINPACK. Общество промышленной и прикладной математики.
  8. ^ Dongarra, JJ, Luszczek, P., & Petitet, A. (2003). Тест LINPACK: прошлое, настоящее и будущее. Параллелизм и вычисления: практика и опыт, 15 (9), 803-820.
  9. ^ Dongarra, JJ (1987, июнь). Тест LINPACK: объяснение. В Международной конференции по суперкомпьютерам (стр. 456-474). Шпрингер, Берлин, Гейдельберг.
  10. ^ Циммерман, П., Casamayou, А., Коэна, Н., Connan Г., Dumont, Т., Fousse, Л., ... & Bray, Е. (2018). Вычислительная математика с SageMath. СИАМ.
  11. Перейти ↑ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: научные инструменты с открытым исходным кодом для Python.
  12. ^ Брессерт, E. (2012). SciPy и NumPy: обзор для разработчиков. "O'Reilly Media, Inc.".
  13. Перейти ↑ Blanco-Silva, FJ (2013). Изучение SciPy для численных и научных вычислений. Packt Publishing Ltd.
  14. ^ SM Rump: INTLAB - INTerval LABoratory. Тибор Чендес, редактор журнала «Развитие надежных вычислений», стр. 77–104. Kluwer Academic Publishers, Дордрехт, 1999.
  15. ^ Мур, RE, Kearfott, RB, и облако, MJ (2009). Введение в интервальный анализ. Общество промышленной и прикладной математики.
  16. ^ Крестца, SM (2010). Методы проверки: точные результаты с использованием арифметики с плавающей запятой. Acta Numerica, 19, 287–449.
  17. Перейти ↑ Hargreaves, GI (2002). Интервальный анализ в MATLAB . Численные алгоритмы, (2009.1).

Внешние ссылки [ править ]

  • Математический форум - математические библиотеки , обширный список математических библиотек с краткими описаниями.