「首席架構師推薦」數值計算庫一覽表

2019-10-21     首席架構師

這是一個著名的數值庫列表,這些庫用於軟體開發中執行數值計算。它不是一個完整的列表,而是一個包含Wikipedia上文章的數字型檔列表,很少有例外。

典型庫的選擇取決於一系列不同的需求,例如:期望的特性(例如:大維線性代數、並行計算、偏微分方程)、商業/開源性質、API的可讀性、可移植性或平台/編譯器依賴性(例如:Linux、Windows、Visual c++、GCC)、速度性能、易用性、開發人員的持續支持、標準遵從性、針對特定應用程式場景的代碼的專門優化,甚至要安裝的代碼庫的大小。

由於我們發現很少有全面的調查可用,所以在許多可能的庫中幾乎總是(至少最初是)有一個艱難的選擇。通常情況下,它往往是由用戶根據自己的品味和舒適度來決定的,只是因為缺乏適當的信息。

Multi-language

  • 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是一種開源的高級程式語言和庫,包括一個命令行接口和GUI,類似於Maple、MATLAB、Mathematica等商業替代品。可以從許多平台(包括高級工程程序)調用api、函數和庫,在許多情況下,函數可以像MATLAB那樣無縫地解釋和集成。它也可以用於批量定位。
  • librsb是一個用於高性能稀疏矩陣計算的開源庫,提供多線程原語來構建疊代求解器(也實現稀疏BLAS標準)。它可以從C、c++、Fortran和專用的GNU Octave包中使用。

C

  • BLOPEX(塊局部最優預處理特徵值Xolvers)是一個用於特徵值問題的可伸縮(並行)解決方案的開源庫。
  • FFTW(西方最快的傅立葉變換)是一個計算傅立葉和相關變換的軟體庫。
  • GNU Scientific Library,一個流行的,用C語言實現的免費的數值分析庫。
  • GNU Multi-Precision Library是一個做任意精度算術的庫。
  • hypre (High Performance preconditioning)是一個用於線性系統和預處理的可伸縮(並行)解決方案的例程開源庫。
  • LabWindows/CVI是一個ANSI C IDE,包括用於分析原始測量數據、信號生成、窗口、濾波函數、信號處理、線性代數、數組和複雜操作、曲線擬合和統計的內置庫。
  • Lis是一個可擴展的並行庫,用於求解線性方程組和特徵值問題。
  • Intel MKL,英特爾數學內核庫(C語言),一個為科學、工程和金融應用程式優化數學例程的庫,用C/ c++和Fortran編寫。核心數學函數包括BLAS、LAPACK、ScaLAPACK、稀疏求解器、快速傅立葉變換和向量數學。
  • OpenBLAS是BLAS API的一個開源實現,具有許多針對特定處理器類型的手工優化。它在Intel處理器上的性能類似於Intel MKL,在其他各種處理器上的性能更高。
  • Portable, Extensible Toolkit for Scientific Computation (PETSc) 是一套數據結構和例程,用於偏微分方程建模的科學應用程式的可伸縮(並行)解決方案。
  • SLEPc Scalable Library for Eigenvalue Problem Computations 是一個基於petsc的面向特徵值問題可伸縮(並行)解決方案的開源庫。

C++

  • Adept是一個組合自動微分和數組庫。
  • Advanced Simulation Library是一個免費的開源硬體加速多物理仿真軟體,具有基於opencl的內部計算引擎。
  • ALGLIB是一個開源/商用的c++版本的數值分析庫
  • Armadillo是一個c++線性代數庫(矩陣和向量數學),旨在在速度和易用性之間取得良好的平衡。它使用模板類,並具有指向BLAS和LAPACK的可選連結。語法(API)類似於MATLAB。
  • Blaze是一個用於密集和稀疏運算的開源高性能c++數學庫。
  • Blitz c++是一個用c++編寫的高性能向量數學庫。
  • Boost.uBLAS。用於數值計算的uBLAS c++庫
  • deal.II是一個支持所有偏微分方程有限元解的庫。
  • Dlib是一個現代c++庫,易於使用線性代數和優化工具,這些工具得益於優化的BLAS和LAPACK庫。
  • Eigen是一個矢量數學庫,其性能可與Intel的數學內核庫相媲美
  • Hermes項目:c++ /Python庫,用於空間和時空自適應hp-FEM求解器的快速原型設計。
  • iml++是一個用於求解線性方程組的c++庫,能夠處理密集、稀疏和分布式矩陣。
  • 它是一個c++庫,用於線性代數(矩陣和向量)、信號處理和通信。功能類似於MATLAB和八度。
  • IT++一個用於LAPACK和BLAS的c++包裝器庫
  • Intel MKL,英特爾數學內核庫(C和c++),一個科學,工程和金融應用程式優化數學例程庫,用C/ c++和Fortran編寫。核心數學函數包括BLAS、LAPACK、ScaLAPACK、稀疏求解器、快速傅立葉變換和向量數學。
  • mlpack是一個用於機器學習的開源庫,它利用c++語言特性來提供最大的性能和靈活性,同時提供一個簡單和一致的API
  • MTL4是一個提供稀疏和密集BLAS功能的通用c++模板庫。由於通用編程,MTL4建立了一個直觀的介面(類似於MATLAB)和廣泛的適用性。
  • NAG庫有c++ API
  • NTL是一個用於數論的c++庫。
  • triinos致力於為解決大規模、複雜的多物理工程和科學問題開發算法和實現技術。它是包的集合。

Delphi

  • Analytics & Physics:用於符號和數值計算(包括符號導數)以及處理物理值和測量單位的商用Delphi庫。
  • ALGLIB一個開源的數值分析庫。

.NET Framework languages C#, F#, VB.NET and PowerShell

  • Accord.NET是一個科學計算庫的集合,包括數值線性代數、優化、統計、人工神經網絡、機器學習、信號處理和計算機視覺。LGPLv3,部分GPLv3。
  • AForge。NET是一個計算機視覺和人工智慧圖書館。它實現了多種遺傳、模糊邏輯和機器學習算法,並結合幾種人工神經網絡體系結構和相應的訓練算法。LGPLv3和部分GPLv3。
  • ALGLIB是一個c#版本的開源數值分析庫。雙重許可:GPLv2+,商業許可。
  • ILNumerics。Net商用高性能,類型安全數字數組類和函數的一般數學,FFT和線性代數,目標。Net / mon, 32和64位,類似腳本的語法在c#, 2D和3D繪圖控制項,有效的內存管理。
  • IMSL數字型檔有c#版本(商業許可)。. net已經宣布在2020年底結束生命。
  • Math.NET Numerics 旨在為科學、工程和日常應用中的數值計算提供方法和算法。涵蓋的主題包括特殊函數,線性代數,機率模型,隨機數,插值,積分變換等。麻省理工學院/X11許可下的自由軟體。
  • Measurement Studio是一個商業集成套件UI控制項和類庫,用於開發測試和測量應用程式。分析類庫提供各種數位訊號處理、信號過濾、信號生成、峰值檢測和其他通用數學功能。
  • ML.NET是一個免費的c#程式語言機器學習庫
  • NAG庫有c# API。商業許可。
  • NMath by CenterSpace Software: . net平台的商業數字組件庫,包括信號處理(FFT)類、線性代數(LAPACK & BLAS)框架和統計軟體包。
  • Numpy.NET為NumPy提供了c#語言綁定,這是一個用於科學計算、機器學習和人工智慧的基本庫。[3]Numpy。NET是麻省理工學院授權的自由軟體。
  • NumSharp是一個用於數據科學、機器學習和人工智慧的開源N-D張量計算庫,使用純c#編寫。[4] NumSharp是在Apache 2.0許可下授權的自由軟體。

Fortran

  • BLAS (Basic Linear Algebra Subprograms)是一個事實上的應用程式編程接口標準,用於發布庫來執行基本的線性代數操作,如向量和矩陣乘法。
  • CERNLIB是FORTRAN 77庫和模塊的集合。
  • EISPACK是一個用FORTRAN語言編寫的矩陣特徵值和特徵向量數值計算的軟體庫。它包含計算9類矩陣特徵值的子程序:復一般矩陣、復厄米矩陣、實一般矩陣、實對稱矩陣、實對稱帶狀矩陣、實對稱三對角矩陣、特殊實三對角矩陣、廣義實矩陣和廣義實對稱矩陣。
  • IMSL數值庫是跨平台的庫,包含一組完整的數學和統計函數,可以嵌入到用戶應用程式中。
  • Harwell子例程庫是Fortran 77和95代碼的集合,用於解決數值分析中的核心問題。
  • LAPACK, the Linear Algebra PACKage 是一個用於數值計算的軟體庫,最初用FORTRAN 77編寫,現在用FORTRAN 90編寫。
  • LINPACK是一個用於在數字計算機上執行數字線性代數的軟體庫。它是由Jack Dongarra、Jim Bunch、Cleve Moler和Pete Stewart用Fortran語言編寫的,在20世紀70年代和80年代早期被用於超級計算機。它在很大程度上已經被LAPACK所取代,LAPACK將在現代架構上更有效地運行。
  • Lis是一個可擴展的並行庫,用於求解線性方程組和特徵值問題。
  • MINPACK是一個FORTRAN子程序庫,用於求解非線性方程組,或最小化一組線性或非線性方程組的殘差。
  • NAG Fortran庫是Fortran的數學和統計例程的集合。
  • NOVAS是一個用於天文相關數值計算的軟體庫。Fortran和C版本都是可用的。
  • Netlib是一個科學計算軟體庫,其中包含大量獨立的程序和庫,包括BLAS、EISPACK、LAPACK等。
  • PAW是CERN開發的一個免費數據分析包。
  • Portable, Extensible Toolkit for Scientific Computation (PETSc)是一套數據結構和例程,用於偏微分方程建模的科學應用程式的可伸縮(並行)解決方案。
  • QUADPACK是一個FORTRAN 77庫,用於一維函數的數值積分
  • SLATEC是一個FORTRAN 77庫,包含1400多個通用數學和統計例程。
  • SOFA是實現天文計算的官方IAU算法的子例程集合。Fortran和C版本都是可用的。
  • ARPACK是Fortran77子程序的集合,用於解決大規模特徵值問題。

Java

  • ND4J是一個開源庫,支持n維(ND)數組,類似於NumPy。它運行在分布式gpu或cpu跨平台上,並利用Spark進行並行計算。它支持深度學習庫Deeplearning4j。
  • Apache Commons是一個用於創建可重用Java組件的開源工具。它有線性代數和非線性優化的數值包。
  • Colt提供了一組用於高性能科學和技術計算的開源庫。
  • Efficient Java Matrix Library (EJML) 是一個用於處理密集矩陣的開放源碼線性代數庫。
  • JAMA一個用於Java程式語言的數字線性代數工具包。自2005年以來沒有進行過任何積極的開發,但它仍然是Java中比較流行的線性代數包之一。
  • Jblas: Linear Algebra for Java,一個線性代數庫,它是一個易於使用的BLAS和LAPACK包裝器。
  • Parallel Colt是一個用於科學計算的開源庫。柯爾特的平行延伸。
  • Matrix Toolkit Java是一個基於BLAS和LAPACK的線性代數庫。
  • ojAlgo是一個用於數學、線性代數和優化的開源Java庫。
  • exp4j是一個用於計算數學表達式的小型Java庫。

Scala

  • ND4S是Scala的一個科學計算庫,它支持JVM上的n維數組。

Perl

  • Perl Data Language 使標準Perl能夠緊湊地存儲和快速地操作大型n維數據數組。

Python

  • NumPy,一個bsd授權的庫,增加了對大型、多維數組和矩陣操作的支持;它還包含大量高級數學函數。NumPy是許多其他數字型檔的主幹,尤其是SciPy。Python中矩陣/張量運算的事實標準
  • SageMath是一個大型的數學軟體應用程式,它集成了近100個自由軟體項目的工作,並支持線性代數、組合學、數值數學、微積分等。
  • SciPy是bsd授權的大型科學工具庫。Python中科學計算的實際標準。
  • ScientificPython一個擁有不同科學工具集的庫
  • SymPy,一個基於新的BSD許可證的符號計算庫。辛普森的特徵從基本符號算術到微積分、代數、離散數學和量子物理都有。

Others

  • XNUMBERS -用於Microsoft Excel的多精度浮點計算和數值方法。
  • INTLAB用於MATLAB的區間算術庫。

另請參閱

  • 計算機代數系統比較
  • 數值分析軟體比較
  • 繪圖軟體列表
  • 數值分析軟體列表
  • 優化軟體清單
  • 統計軟體包清單

原文:https://en.wikipedia.org/wiki/List_of_numerical_libraries

本文:https://pub.intelligentx.net/wikipedia-list-numerical-libraries

討論:請加入知識星球或者小紅圈【首席架構師圈】

麻煩各位道友為我投票,點擊【為我投票】按鈕。

文章來源: https://twgreatdaily.com/zh-mo/l9xw9m0BMH2_cNUgrpmA.html