这是一个著名的数值库列表,这些库用于软件开发中执行数值计算。它不是一个完整的列表,而是一个包含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
讨论:请加入知识星球或者小红圈【首席架构师圈】
麻烦各位道友为我投票,点击【为我投票】按钮。