List of numerical libraries

From Wikipedia, the free encyclopedia
Jump to: navigation, search

This is a list of notable numerical libraries, which are libraries used in software development for performing numerical calculations. It is not a complete listing but is instead a list of numerical libraries with articles on Wikipedia, with few exceptions.

The choice of a typical library depends on a diverse range of requirements such as: desired features (for e.g.: large dimensional linear algebra, parallel computation, partial differential equations), commercial/opensource nature, readability of API, portability or platform/compiler dependence (for e.g.: Linux, Windows, Visual C++, GCC), performance in speed, ease-of-use, continued support from developers, standard compliance, specialized optimization in code for specific application scenarios or even the size of the code-base to be installed.

As we find comprehensive surveys rarely available, there is almost always (at least initially) a difficult choice among a number of possible libraries. Often it tends to be at the discretion of the user based on his own taste and comforts, only due to the lack of proper information.

Multi-language[edit]

  • ALGLIB is an open source numerical analysis library which may be used from C++, C#, FreePascal, Delphi, VBA.
  • IMSL Numerical Libraries are libraries of numerical analysis functionality implemented in standard programming languages like C, Java, C# .NET, Fortran, and Python.
  • The NAG Library is a collection of mathematical and statistical routines for multiple programming languages (C, C++, Fortran, Visual Basic, Java and C#) and packages (MATLAB, Excel, R, LabVIEW).
  • GNU Octave is an open source high level programming language and library, including a command line interface, analogous to commercial alternatives such as Maple, MatLab, Mathematica, etc. APIs, functions and libraries can be called from many platforms, including high level engineering programs, where functions are, in many cases, seamlessly interpreted and integrated in similar fashion to MatLab. It also can be used with batch orientation.

C[edit]

C++[edit]

  • Advanced Simulation Library is free and open source hardware accelerated multiphysics simulation software with an OpenCL-based internal computational engine.
  • Armadillo is a C++ linear algebra library (matrix and vector maths), aiming towards a good balance between speed and ease of use. It employs template classes, and has optional links to BLAS and LAPACK. The syntax (API) is similar to MATLAB.
  • Blitz++ is a high-performance vector mathematics library written in C++.
  • Boost C++ libraries for numerical computation
  • Ceemple is a collection of C++ scientific libraries packaged with IDE and JIT
  • deal.II is a library supporting all the finite element solution of partial differential equations.
  • Dlib is a modern C++ library with easy to use linear algebra and optimization tools which benefit from optimized BLAS and LAPACK libraries.
  • Eigen is a vector mathematics library with performance comparable with Intel's Math Kernel Library
  • GLM- OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics software based on the OpenGL Shading Language (GLSL) specifications.
  • GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License. The library provides a wide range of mathematical routines such as random number generators, etc. There are over 1000 functions in total with an extensive test suite.
  • Hermes Project: C++/Python library for rapid prototyping of space- and space-time adaptive hp-FEM solvers.
  • IML++ is a C++ library for solving linear systems of equations, capable of dealing with dense, sparse, and distributed matrices.
  • IT++ is a C++ library for linear algebra (matrices and vectors), signal processing and communications. Functionality similar to MATLAB and Octave.
  • LAPACK++, a C++ wrapper library for LAPACK and BLAS
  • LSSP is a library for solving linear systems with real sparse matrices. It has many built-in solvers and preconditioners, such as GMRES, LGMRES, BICGSTAB, BICGSTABL, BICGSAFE, CG, CGS, GPBICG, CR, CRS, BICRSTAB, BICRSAFE, GPBICR, QMRCGSTAB, TFQMR, ORTHOMIN and IDRS, and it also has interfaces to external packages, such as PETSc, MUMPS, FASP, UMFPACK (SUITESPARSE), KLU (SUITESPARSE), LASPACK, ITSOL, LIS, QR_MUMPS, PARDISO, SUPERLU, and HSL MI20. The package is serial.
  • Intel MKL, Intel Math Kernel Library (in C++), a library of optimized math routines for science, engineering, and financial applications, written in C/C++ and Fortran. Core math functions include BLAS, LAPACK, ScaLAPACK, sparse solvers, fast Fourier transforms, and vector math.
  • MLPACK is an open-source library for machine learning, exploiting C++ language features to provide maximum performance and flexibility while providing a simple and consistent API
  • MTL4 is a generic C++ template library providing sparse and dense BLAS functionality. MTL4 establishes an intuitive interface (similar to MATLAB) and broad applicability thanks to Generic programming.
  • The NAG C++ Library is a collection of mathematical and statistical routines for C++.
  • NTL is a C++ library for number theory.
  • PETSc - Portable, Extensible Toolkit for Scientific Computation
  • Trilinos is an effort to develop algorithms and enabling technologies for the solution of large-scale, complex multi-physics engineering and scientific problems. It is a collection of packages.

.NET Framework languages C#, F#, VB.NET and PowerShell[edit]

  • AForge.NET is a computer vision and artificial intelligence library. It implements a number of genetic, fuzzy logic and machine learning algorithms with several architectures of artificial neural networks with corresponding training algoriithms.
  • Accord.NET is a collection of libraries for scientific computing, including numerical linear algebra, optimization, statistics, artificial neural networks, machine learning, signal processing and computer vision.
  • ILNumerics.Net Commercial high performance, typesafe numerical array classes and functions for general math, FFT and linear algebra, aims .NET/mono, 32&64 bit, script-like syntax in C#, 2D & 3D plot controls, efficient memory management
  • Measurement Studio is a commercial integrated suite UI controls and class libraries for use in developing test and measurement applications. The analysis class libraries provide various digital signal processing, signal filtering, signal generation, peak detection, and other general mathematical functionality.
  • NeuronDotNet is a GPL-licensed artificial neural network library entirely written in C#. Because it only depends on the core .NET assemblies, it is easily portable across platforms.
  • NMath by CenterSpace Software: Commercial numerical component libraries for the .NET platform, including signal processing (FFT) classes, a linear algebra (LAPACK & BLAS) framework, and a statistics package.
  • Math.NET Numerics aims to provide methods and algorithms for numerical computations in science, engineering and every day use. Covered topics include special functions, linear algebra, probability models, random numbers, interpolation, integral transforms and more. MIT/X11 license.

Fortran[edit]

Java[edit]

Scala[edit]

  • ND4S is a scientific computing library for Scala that includes support for n-dimensional arrays on the JVM.

Python[edit]

  • DataMelt scientific libraries based on Jython, Java implementation of the Python language.
  • matplotlib, a MATLAB-like plotting library.
  • NumPy, a library that adds support for the manipulation of large, multi-dimensional arrays and matrices; it also includes a large collection of high-level mathematical functions. NumPy serves as the backbone for a number of other numerical libraries, notably SciPy.
  • Sage Math is a large mathematical software application which integrates the work of nearly 100 free software projects and supports linear algebra, combinatorics, numerical mathematics, calculus, and more.
  • Plotly, a web-based scientific plotting library.
  • SciPy, a large library of scientific tools.
  • ScientificPython, a library with a different set of scientific tools

Groovy[edit]

  • DataMelt, an open-source Java libraries for numerical calculations, data I/O and visualization of scientific results. Used together with Groovy.

Others[edit]

See also[edit]

References[edit]


External links[edit]