Список числовых библиотек - 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

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, которая может использоваться для задач обработки естественного языка.

Фортран

Джава

  • 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 для вычисления математических выражений.
  • SuanShu - это библиотека 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 варьируются от базовой символьной арифметики до исчисления, алгебры, дискретной математики и квантовой физики.

    Другие

    Смотрите также

    использованная литература

    внешние ссылки