Wykaz bibliotek numerycznych
To jest lista bibliotek numerycznych , które są bibliotekami używanymi w tworzeniu oprogramowania do wykonywania obliczeń numerycznych . Nie jest to pełna lista, ale lista bibliotek numerycznych z artykułami w Wikipedii, z kilkoma wyjątkami.
Wybór typowej biblioteki zależy od szeregu wymagań, takich jak: pożądane funkcje (np. wielkowymiarowa algebra liniowa, obliczenia równoległe, równania różniczkowe cząstkowe), licencja, czytelność API, przenośność lub zależność od platformy/kompilatora (np. Linux, Windows, Visual C++, GCC), wydajność, łatwość obsługi, stałe wsparcie ze strony programistów, zgodność ze standardami, wyspecjalizowana optymalizacja kodu pod kątem określonych scenariuszy aplikacji, a nawet wielkość bazy kodu do zainstalowania.
Wielojęzyczny
- ALGLIB to biblioteka analizy numerycznej typu open source, która może być używana z języków C++, C#, FreePascal, Delphi, VBA.
- ArrayFire to wysokowydajna biblioteka oprogramowania typu open source do obliczeń równoległych z łatwym w użyciu interfejsem API.
- Biblioteki numeryczne IMSL to biblioteki funkcji analizy numerycznej zaimplementowane w standardowych językach programowania, takich jak C, Java, C# .NET, Fortran i Python.
- Biblioteka NAG to zbiór procedur matematycznych i statystycznych dla wielu języków programowania (C, C++, Fortran, Visual Basic, Java, Python i C#) oraz pakietów (MATLAB, Excel, R, LabVIEW).
- GNU Octave to otwarty język programowania i biblioteka wysokiego poziomu, w tym interfejs wiersza poleceń i GUI, analogiczne do komercyjnych alternatyw, takich jak Maple, MATLAB, Mathematica itp. API, funkcje i biblioteki można wywoływać z wielu platform, w tym wysokiego poziomu programy inżynierskie, w których funkcje są w wielu przypadkach bezproblemowo interpretowane i integrowane w sposób podobny do MATLAB-a. Może być również używany z orientacją wsadową.
- librsb to biblioteka typu open source do wysokowydajnych obliczeń rzadkich macierzy, zapewniająca wielowątkowe prymitywy do budowy iteracyjnych solwerów (implementuje również standard Sparse BLAS ). Może być używany z C, C++, Fortran i dedykowanego GNU Octave .
C
- BLOPEX (Block Locally Optimal Pre Condition Eigenvalue Xolvers) to biblioteka typu open source do skalowalnego ( równoległego ) rozwiązywania problemów z wartością własną.
- FFTW (najszybsza transformata Fouriera na Zachodzie) to biblioteka oprogramowania do obliczania transformacji Fouriera i pokrewnych.
- GNU Scientific Library , popularna, bezpłatna biblioteka do analizy numerycznej zaimplementowana w C .
- GNU Multi-Precision Library to biblioteka do wykonywania arytmetyki o dowolnej precyzji .
- hypre ( High Performance Preconditioners) to otwarta biblioteka procedur dla skalowalnych ( równoległych ) rozwiązań systemów liniowych i uwarunkowania wstępnego.
- LabWindows/CVI to ANSI C IDE , które zawiera wbudowane biblioteki do analizy surowych danych pomiarowych, generowania sygnałów, okienkowania, funkcji filtrów, przetwarzania sygnałów, algebry liniowej, operacji tablicowych i złożonych, dopasowywania krzywych i statystyk.
- Lis to skalowalna biblioteka równoległa do rozwiązywania układów równań liniowych i problemów z wartościami własnymi przy użyciu metod iteracyjnych.
- Intel MKL (Math Kernel Library) zawiera zoptymalizowane procedury matematyczne dla zastosowań naukowych, inżynieryjnych i finansowych, i jest napisany w C/C++ i Fortran. Podstawowe funkcje matematyczne obejmują BLAS, LAPACK, ScaLAPACK, rzadkie solwery, szybkie transformaty Fouriera i matematykę wektorową.
- Intel IPP to wielowątkowa biblioteka oprogramowania zawierająca funkcje dla aplikacji multimedialnych i przetwarzania danych.
- OpenBLAS to implementacja API BLAS typu open source z wieloma ręcznie wykonanymi optymalizacjami dla określonych typów procesorów. Działa podobnie do Intel MKL na procesorach Intel i wyżej na różnych innych.
- Przenośny, rozszerzalny zestaw narzędzi do obliczeń naukowych (PETSc) to zestaw struktur danych i procedur do skalowalnego ( równoległego ) rozwiązania aplikacji naukowych modelowanych za pomocą równań różniczkowych cząstkowych .
- SLEPc Scalable Library for Eigenvalue Problem Computations to biblioteka typu open source oparta na PETSc , służąca do skalowalnego ( równoległego ) rozwiązywania problemów z wartościami własnymi.
C++
- Adept to połączona biblioteka automatycznego różnicowania i tablic .
- Advanced Simulation Library to bezpłatne, akcelerowane sprzętowo oprogramowanie do symulacji wielofizycznych typu open source z wewnętrznym silnikiem obliczeniowym opartym na OpenCL .
- ALGLIB to komercyjna biblioteka do analizy numerycznej typu open source w wersji C++
- Armadillo to biblioteka algebry liniowej C++ (matematyka macierzowa i wektorowa), mająca na celu dobrą równowagę między szybkością a łatwością użycia. Wykorzystuje klasy szablonów i ma opcjonalne łącza do BLAS i LAPACK. Składnia ( API ) jest podobna do MATLAB-a .
- Blitz++ to wysokowydajna biblioteka matematyki wektorowej napisana w C++.
- Boost.uBLAS C++ do obliczeń numerycznych
- deal.II to biblioteka obsługująca wszystkie rozwiązania elementów skończonych równań różniczkowych cząstkowych.
- Dlib to nowoczesna biblioteka C++ z łatwą w użyciu algebrą liniową i narzędziami optymalizacyjnymi, które korzystają ze zoptymalizowanych bibliotek BLAS i LAPACK.
- Eigen to biblioteka matematyki wektorowej o wydajności porównywalnej z biblioteką Math Kernel Library firmy Intel
- Projekt Hermes : biblioteka C++/Python do szybkiego prototypowania adaptacyjnych solwerów hp-FEM do przestrzeni i czasu.
- IML++ to biblioteka C++ do rozwiązywania liniowych układów równań, zdolna do radzenia sobie z gęstymi, rzadkimi i rozproszonymi macierzami.
- IT++ to biblioteka C++ do algebry liniowej (macierze i wektory), przetwarzania sygnałów i komunikacji. Funkcjonalność podobna do MATLAB i Octave.
- LAPACK++ , biblioteka opakowująca C++ dla LAPACK i BLAS
- MFEM to darmowa, lekka, skalowalna biblioteka C++ do metod elementów skończonych .
- Intel MKL , Intel Math Kernel Library (w C i C++), biblioteka zoptymalizowanych procedur matematycznych do zastosowań naukowych, inżynieryjnych i finansowych, napisana w C/C++ i Fortran. Podstawowe funkcje matematyczne obejmują BLAS, LAPACK, ScaLAPACK, rzadkie solwery, szybkie transformaty Fouriera i matematykę wektorową.
- mlpack to biblioteka typu open source do uczenia maszynowego, wykorzystująca funkcje języka C++ w celu zapewnienia maksymalnej wydajności i elastyczności przy jednoczesnym zapewnieniu prostego i spójnego interfejsu API
- MTL4 to ogólna biblioteka szablonów C++ zapewniająca rzadką i gęstą funkcjonalność BLAS. MTL4 zapewnia intuicyjny interfejs (podobny do MATLAB-a ) i szerokie zastosowanie dzięki programowaniu generycznemu .
- Biblioteka NAG ma API C++
- NTL to biblioteka C++ do teorii liczb.
- Trilinos to wysiłek mający na celu opracowanie algorytmów i technologii umożliwiających rozwiązanie wielkoskalowych, złożonych problemów inżynierskich i naukowych z wielu dziedzin fizyki. Jest to zbiór pakietów .
Delfy
- ALGLIB - biblioteka analizy numerycznej typu open source.
Języki .NET Framework C# , F# , VB.NET i PowerShell
- Accord.NET to zbiór bibliotek do obliczeń naukowych, w tym numerycznej algebry liniowej, optymalizacji, statystyki, sztucznych sieci neuronowych, uczenia maszynowego, przetwarzania sygnałów i wizji komputerowej. LGPLv3, częściowo GPLv3.
- AForge.NET to biblioteka wizji komputerowej i sztucznej inteligencji. Implementuje szereg algorytmów genetycznych, logiki rozmytej i uczenia maszynowego z kilkoma architekturami sztucznych sieci neuronowych z odpowiednimi algorytmami uczącymi. LGPLv3 i częściowo GPLv3.
- ALGLIB to biblioteka analizy numerycznej typu open source w wersji C#. Podwójna licencja: GPLv2+, licencja komercyjna.
- ILNumerics.Net Komercyjne, wysokowydajne, bezpieczne dla typu numeryczne klasy tablicowe i funkcje dla matematyki ogólnej, FFT i algebry liniowej, przeznaczone dla .NET/mono, 32 i 64 bit, składnia podobna do skryptu w C#, sterowanie wykresami 2D i 3D, wydajne zarządzanie pamięcią.
- Biblioteki numeryczne IMSL mają wersję C# (na licencji komercyjnej). IMSL .Net ogłosił koniec życia pod koniec 2020 roku.
- Math.NET Numerics ma na celu dostarczenie metod i algorytmów do obliczeń numerycznych w nauce, inżynierii i codziennym użytkowaniu. Omawiane tematy obejmują funkcje specjalne, algebrę liniową, modele prawdopodobieństwa, liczby losowe, interpolację, przekształcenia całkowe i wiele innych. Darmowe oprogramowanie na licencji MIT/X11.
- Measurement Studio to komercyjny zintegrowany pakiet kontrolek interfejsu użytkownika i bibliotek klas do użytku w opracowywaniu aplikacji testowych i pomiarowych. Biblioteki klas analizy zapewniają różnorodne cyfrowe przetwarzanie sygnałów, filtrowanie sygnałów, generowanie sygnałów, wykrywanie pików i inne ogólne funkcje matematyczne.
- ML.NET to bezpłatna biblioteka oprogramowania do uczenia maszynowego dla języka programowania C# .
- Biblioteka NAG ma API C#. Licencja komercyjna.
- NMath firmy CenterSpace : Komercyjne biblioteki komponentów numerycznych dla platformy .NET, w tym klasy przetwarzania sygnałów (FFT), ramy algebry liniowej (LAPACK i BLAS) oraz pakiet statystyk.
Fortran
- BLAS (Basic Linear Algebra Subprograms) to de facto standard interfejsu programowania aplikacji do publikowania bibliotek w celu wykonywania podstawowych operacji algebry liniowej, takich jak mnożenie wektorów i macierzy .
- CERNLIB to zbiór bibliotek i modułów FORTRAN 77 .
- EISPACK to biblioteka oprogramowania do numerycznego obliczania wartości własnych i wektorów własnych macierzy, napisana w języku FORTRAN . Zawiera podprogramy do obliczania wartości własnych dziewięciu klas macierzy : zespolonych ogólnych, zespolonych hermitowskich , rzeczywistych ogólnych, rzeczywistych symetrycznych , rzeczywistych symetrycznych pasmowych , rzeczywistych symetrycznych trójkątnych, specjalnych rzeczywistych trójkątnych, uogólnionych rzeczywistych i uogólnionych rzeczywistych symetrycznych.
- Biblioteki numeryczne IMSL to międzyplatformowe biblioteki zawierające kompleksowy zestaw funkcji matematycznych i statystycznych, które można osadzić w aplikacji użytkownika.
- Harwell Subroutine Library to zbiór kodów Fortran 77 i 95, które dotyczą podstawowych problemów w analizie numerycznej.
- LAPACK , Linear Algebra PACKage , to biblioteka oprogramowania do obliczeń numerycznych , pierwotnie napisana w FORTRAN 77 , a teraz napisana w Fortran 90 .
- LINPACK to biblioteka oprogramowania do wykonywania numerycznej algebry liniowej na komputerach cyfrowych. Został napisany w języku Fortran przez Jacka Dongarrę , Jima Buncha, Cleve'a Molera i Pete'a Stewarta i był przeznaczony do użytku w superkomputerach w latach 70. i wczesnych 80. XX wieku. Został w dużej mierze zastąpiony przez LAPACK , który będzie działał wydajniej na nowoczesnych architekturach.
- Lis to skalowalna biblioteka równoległa do rozwiązywania układów równań liniowych i problemów z wartościami własnymi przy użyciu metod iteracyjnych.
- MINPACK to biblioteka podprogramów FORTRAN do rozwiązywania układów równań nieliniowych lub minimalizacji metodą najmniejszych kwadratów reszt ze zbioru równań liniowych lub nieliniowych.
- NAG Fortran Library to zbiór procedur matematycznych i statystycznych dla Fortran.
- NOVAS to biblioteka oprogramowania do obliczeń numerycznych związanych z astrometrią. Dostępne są zarówno wersje Fortran , jak i C.
- Netlib to repozytorium oprogramowania do obliczeń naukowych, które zawiera dużą liczbę oddzielnych programów i bibliotek, w tym BLAS , EISPACK , LAPACK i inne.
- PAW to darmowy pakiet do analizy danych opracowany w CERN .
- Przenośny, rozszerzalny zestaw narzędzi do obliczeń naukowych ( PETSc ) to zestaw struktur danych i procedur do skalowalnego ( równoległego ) rozwiązania aplikacji naukowych modelowanych za pomocą równań różniczkowych cząstkowych .
- QUADPACK to biblioteka FORTRAN 77 do numerycznego całkowania funkcji jednowymiarowych
- SLATEC to biblioteka FORTRAN 77 zawierająca ponad 1400 procedur matematycznych i statystycznych ogólnego przeznaczenia.
- SOFA to zbiór podprogramów implementujących oficjalne algorytmy IAU do obliczeń astronomicznych . Dostępne są zarówno wersje Fortran , jak i C.
- ARPACK to zbiór podprogramów Fortran77 zaprojektowanych do rozwiązywania problemów z wartościami własnymi na dużą skalę.
Jawa
- Apache Commons to open source do tworzenia komponentów Java wielokrotnego użytku. Posiada pakiety numeryczne do algebry liniowej i optymalizacji nieliniowej.
- Colt udostępnia zestaw bibliotek typu open source do wysokowydajnych obliczeń naukowych i technicznych.
- Efficient Java Matrix Library (EJML) to otwarta biblioteka algebry liniowej do manipulowania gęstymi macierzami.
- JAMA , zestaw narzędzi numerycznej algebry liniowej dla języka programowania Java . Od 2005 roku nie nastąpił żaden aktywny rozwój, ale nadal jest to jeden z bardziej popularnych pakietów algebry liniowej w Javie.
- Jblas: Linear Algebra for Java , biblioteka algebry liniowej, która jest łatwym w użyciu opakowaniem wokół BLAS i LAPACK .
- Parallel Colt to biblioteka typu open source do obliczeń naukowych. Równoległe rozszerzenie Colta .
- Matrix Toolkit Java to biblioteka algebry liniowej oparta na BLAS i LAPACK .
- ojAlgo to otwarta biblioteka Java do matematyki, algebry liniowej i optymalizacji.
- exp4j to mała biblioteka Java do oceny wyrażeń matematycznych.
Perl
- Perl Data Language daje standardowemu Perlowi możliwość kompaktowego przechowywania i szybkiego manipulowania dużymi N -wymiarowymi tablicami danych. Może wykonywać złożone i macierzowe obliczenia matematyczne i ma interfejsy dla Biblioteki Naukowej GNU , LINPACK , PROJ i kreślenia z PGPLOT . Istnieją biblioteki CPAN dodające wsparcie dla biblioteki algebry liniowej LAPACK , biblioteki transformacji Fouriera FFTW oraz kreślenia za pomocą gnuplot i PLplot .
Pyton
- NumPy , biblioteka na licencji BSD, która dodaje obsługę manipulacji dużymi, wielowymiarowymi tablicami i macierzami; zawiera również duży zbiór funkcji matematycznych wysokiego poziomu. NumPy służy jako podstawa wielu innych bibliotek numerycznych, w szczególności SciPy . De facto standard operacji macierzowych/tensorowych w Pythonie.
- Pandas , biblioteka do manipulacji i analizy danych.
- SageMath to duża aplikacja matematyczna, która integruje pracę prawie 100 projektów wolnego oprogramowania i obsługuje algebrę liniową, kombinatorykę, matematykę numeryczną, rachunek różniczkowy i inne.
- SciPy , duża biblioteka narzędzi naukowych na licencji BSD. De facto standard obliczeń naukowych w Pythonie.
- ScientificPython , biblioteka z innym zestawem narzędzi naukowych
- SymPy , biblioteka oparta na licencji New BSD do obliczeń symbolicznych. Funkcje Sympy sięgają od podstawowej arytmetyki symbolicznej po rachunek różniczkowy, algebrę, matematykę dyskretną i fizykę kwantową.
Inni
- XNUMBERS – wieloprecyzyjne obliczenia zmiennoprzecinkowe i metody numeryczne dla programu Microsoft Excel .
- INTLAB – biblioteka arytmetyczna interwałów dla MATLAB .
Zobacz też
- Lista systemów algebry komputerowej
- Porównanie oprogramowania do analizy numerycznej
- Lista oprogramowania do grafiki informacyjnej
- Lista oprogramowania do analizy numerycznej
- Lista oprogramowania optymalizacyjnego
- Lista oprogramowania statystycznego
Linki zewnętrzne
- The Math Forum - Math Libraries , obszerna lista bibliotek matematycznych z krótkimi opisami