Список числовых библиотек - List of numerical libraries
Это список известных численных библиотек , которые являются библиотеками , используемыми в разработке программного обеспечения для выполнения численных расчетов. Это не полный список, а список числовых библиотек со статьями в Википедии, за некоторыми исключениями.
Выбор типичной библиотеки зависит от разнообразных требований, таких как: желаемые характеристики (например: линейная алгебра больших размеров, параллельные вычисления, уравнения в частных производных), коммерческий характер / открытый исходный код, удобочитаемость 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 ++ (матричная и векторная математика), направленная на достижение хорошего баланса между скоростью и простотой использования. Он использует классы шаблонов и имеет дополнительные ссылки на 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
- 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 # .
- В библиотеке NAG есть C # API. Имеет коммерческую лицензию.
- NMath от CenterSpace Software : коммерческие библиотеки числовых компонентов для платформы .NET, включая классы обработки сигналов (FFT), структуру линейной алгебры (LAPACK & BLAS) и пакет статистики.
- Seq2SeqSharp - это основанный на тензоре быстрый и гибкий фреймворк для глубокого обучения кодировщика-декодера, который поддерживает автоматическое дифференцирование, различные типы сетей (Transformer, LSTM, BiLSTM и т. Д.), Мульти-графические процессоры и другие функции. Это лицензия BSD-3-Clause, которая может использоваться для задач обработки естественного языка.
Фортран
- BLAS (базовые подпрограммы линейной алгебры) - это де-факто стандарт интерфейса прикладного программирования для публикации библиотек для выполнения основных операций линейной алгебры, таких как векторное и матричное умножение .
- CERNLIB - это набор библиотек и модулей FORTRAN 77 .
- EISPACK это библиотека программного обеспечения для численного расчета из собственных и собственных векторов матриц, написанного в Фортране . Он содержит подпрограммы для вычисления собственных значений девяти классов матриц : комплексных общих, комплексных эрмитовых , вещественных общих, вещественных симметричных, вещественных симметричных полосчатых , вещественных симметричных трехдиагональных, специальных вещественных трехдиагональных, обобщенных вещественных и обобщенных вещественных симметричных матриц.
- Числовые библиотеки IMSL - это кроссплатформенные библиотеки, содержащие полный набор математических и статистических функций, которые могут быть встроены в пользовательское приложение.
- Библиотека подпрограмм Harwell - это набор кодов Fortran 77 и 95, которые решают основные проблемы численного анализа.
- LAPACK , пакет линейной алгебры , представляет собой программную библиотеку для численных вычислений, изначально написанную на FORTRAN 77, а теперь написанную на Fortran 90 .
- LINPACK - это программная библиотека для выполнения числовой линейной алгебры на цифровых компьютерах. Она была написана на языке 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, предназначенных для решения крупномасштабных задач на собственные значения.
Джава
- Apache Commons - это открытый исходный код для создания повторно используемых компонентов Java. Он имеет числовые пакеты для линейной алгебры и нелинейной оптимизации.
- Colt предоставляет набор библиотек с открытым исходным кодом для высокопроизводительных научных и технических вычислений.
- Efficient Java Matrix Library (EJML) - это библиотека линейной алгебры с открытым исходным кодом для управления плотными матрицами.
- JAMA , набор инструментов числовой линейной алгебры для языка программирования Java . С 2005 года не велось активной разработки, но это все еще один из самых популярных пакетов линейной алгебры в Java.
- Jblas: Linear Algebra for Java , библиотека линейной алгебры, которая представляет собой простую в использовании оболочку для BLAS и LAPACK .
- Parallel Colt - это библиотека с открытым исходным кодом для научных вычислений. Параллельное продолжение Colt .
- Matrix Toolkit Java - это библиотека линейной алгебры, основанная на BLAS и LAPACK .
- ojAlgo - это библиотека Java с открытым исходным кодом для математики, линейной алгебры и оптимизации.
- exp4j - небольшая библиотека Java для вычисления математических выражений.
Perl
- Perl Data Language дает стандартному Perl возможность компактно хранить и быстро управлять большими N- мерными массивами данных. Он может выполнять сложные и матричные математические вычисления и имеет интерфейсы для научной библиотеки GNU , LINPACK , PROJ (по состоянию на июль 2021 года, только версия 4) и построения графиков с помощью PGPLOT . В CPAN есть библиотеки, добавляющие поддержку библиотеки линейной алгебры LAPACK , библиотеки преобразования Фурье FFTW и построения графиков с помощью gnuplot и PLplot .
Python
- NumPy , библиотека под лицензией BSD, которая добавляет поддержку для работы с большими многомерными массивами и матрицами; он также включает в себя большой набор математических функций высокого уровня. NumPy служит основой для ряда других числовых библиотек, особенно для SciPy . Де-факто стандарт для матричных / тензорных операций в Python.
- Pandas - библиотека для обработки и анализа данных.
- SageMath - это большое математическое программное приложение, которое объединяет работу почти 100 проектов бесплатного программного обеспечения и поддерживает линейную алгебру, комбинаторику, численную математику, исчисление и многое другое.
- SciPy , большая библиотека научных инструментов под лицензией BSD. Де-факто стандарт для научных вычислений на Python.
- ScientificPython , библиотека с другим набором научных инструментов
- SymPy , библиотека, основанная на новой лицензии BSD для символьных вычислений. Возможности Sympy варьируются от базовой символьной арифметики до исчисления, алгебры, дискретной математики и квантовой физики.
Другие
- XNUMBERS - Вычисления с плавающей запятой с высокой точностью и численные методы для Microsoft Excel .
- INTLAB - Библиотека интервальной арифметики для MATLAB .
Смотрите также
- Сравнение систем компьютерной алгебры
- Сравнение программ численного анализа
- Список программного обеспечения для построения графиков
- Список программного обеспечения для численного анализа
- Список программного обеспечения для оптимизации
- Список статистических пакетов
использованная литература
внешние ссылки
- Математический форум - математические библиотеки , обширный список математических библиотек с краткими описаниями.