List of numerical libraries
Adapted from Wikipedia · Discoverer experience
Numerical libraries are special tools used in software development to help computers do math and solve complex problems. These libraries contain sets of instructions that make it easier to perform calculations like solving equations, working with big numbers, or handling data. They are important because they help programmers build efficient and accurate software for many different uses, from video games to scientific research.
Choosing the right numerical library depends on what you need. Some libraries are better for handling large amounts of data, while others focus on speed or specific types of problems. Factors like the type of computer you're using, how easy the library is to understand, and whether it continues to be updated also matter. These libraries make it possible to solve difficult math problems quickly and reliably in many kinds of software.
Multi-language
Here are some numerical libraries you might hear about in computer science:
- ALGLIB is a free library for math calculations that works with languages like C++, C#, and others.
- ArrayFire is a free library designed for fast computing with an easy-to-use system.
- IMSL Numerical Libraries provide math functions for use in programming languages such as C, Java, and Python.
- The NAG Library offers many math and statistics tools for several programming languages and programs.
- GNU Octave is a free programming tool similar to MATLAB, with a user interface and the ability to work with many other programs.
- librsb is a free library for fast matrix calculations, usable with C, C++, Fortran, and GNU Octave. It follows the Sparse BLAS standard.
C
Here are some important numerical libraries used in software development:
- BLOPEX is an open-source library that helps solve special math problems called eigenvalue problems. It can work quickly by using many computers together.
- Fastest Fourier Transform in the West (FFTW) is a tool for doing certain complex math calculations called Fourier transforms.
- GNU Scientific Library is a free library that helps with many types of math calculations.
- GNU Multi-Precision Library is used for very detailed math calculations that need more numbers than usual.
- hypre is an open-source library that helps solve big systems of math equations faster by using many computers together.
- LabWindows/CVI includes tools for analyzing data, creating signals, and doing many types of math operations.
- Lis is a library that solves systems of math equations and eigenvalue problems quickly by using many computers together.
- Intel MKL contains optimized math tools for science, engineering, and finance. It includes functions for various math tasks.
- Intel IPP is a library of functions for multimedia and data processing.
- OpenBLAS is an open source version of a common math API, optimized for different types of processors.
- Portable, Extensible Toolkit for Scientific Computation (PETSc) is a set of tools and routines for solving scientific problems modeled by certain complex math equations, using many computers together.
- SLEPc is an open-source library based on PETSc that helps solve eigenvalue problems using many computers together.
- UMFPACK is a library for solving certain types of sparse math systems, written in the C programming language. It is used behind the scenes in MATLAB and SciPy.
C++
These are some useful tools for doing math and solving problems in programming with C++. Each tool has special features that make it good for different kinds of work.
- Adept helps with changing values and working with groups of numbers.
- Advanced Simulation Library is free software that makes complex science experiments faster by using special computer parts.
- ALGLIB is a tool for solving math problems, available in both free and paid versions for C++.
- Armadillo makes working with grids of numbers easy and quick, with a style similar to MATLAB.
- Blitz++ is a fast tool for math with groups of numbers in C++.
- Boost.uBLAS provides C++ tools for math calculations.
- deal.II helps solve difficult math problems involving shapes and spaces.
- Dlib offers simple tools for math and finding best solutions, working well with special math libraries.
- Eigen is quick for working with groups of numbers, matching the speed of Intel's Math Kernel Library.
- Hermes Project is a tool for quickly building tests in C++ and Python for complex math problems.
- IML++ solves groups of equations together, handling many different types of number arrangements.
- IT++ works with grids of numbers, signals, and messages, similar to MATLAB.
- LAPACK++ is a C++ tool that works with LAPACK and BLAS.
- MFEM is a free and easy-to-use C++ tool for solving math problems with shapes.
- Intel MKL is Intel's collection of fast math tools for science, engineering, and money problems, using C/C++ and Fortran. It includes BLAS, LAPACK, and other fast math functions.
- mlpack is free software for learning from data, using C++ for speed and flexibility.
- MTL4 is a C++ tool for working with sparse and dense math operations, with an easy-to-use style like MATLAB.
- The NAG Library works with C++.
- NTL is a C++ tool for advanced number theory.
- OpenFOAM is free software for solving math problems in movement and flow.
- SU2 code is free software for solving math problems using different methods.
- Trilinos is a group of tools for solving big, complicated science and engineering problems.
- TNT is a tool for working with grids of numbers, available as public code in header format from NIST. It was created as an update to Lapack++, Sparselib++, and IML++.
Delphi
ALGLIB is an open source library that helps with numerical analysis. It's a tool used in software development to perform calculations and solve math problems.
.NET Framework languages: C#, F#, VB.NET and PowerShell
These are libraries that help with math and science tasks in programming. Some libraries, like Accord.NET, help with many kinds of calculations and learning from data. Others, like AForge.NET, focus on helping computers see and understand images.
There are also libraries such as Math.NET Numerics that offer tools for everyday math problems, and ML.NET which is free software for learning from data using the C# programming language. Each library has its own rules about how it can be used.
Fortran
See also: List of Fortran scientific libraries
- BLAS (Basic Linear Algebra Subprograms) is a standard for libraries that help with basic math tasks, like multiplying numbers in rows and columns.
- CERNLIB is a group of tools written in an old computer language called FORTRAN 77.
- EISPACK is a set of tools for finding special numbers and directions in matrices, written in FORTRAN.
- IMSL Numerical Libraries are tools that include many math and statistics functions that can be used in other programs.
- Harwell Subroutine Library is a group of Fortran tools for solving common math problems.
- LAPACK, the Linear Algebra PACKage, is a tool for complex math calculations, first written in FORTRAN 77 and now updated to Fortran 90.
- LINPACK is a tool for math with rows and columns, made for very fast computers in the 1970s and 1980s. It is now mostly replaced by LAPACK, which works better on today’s computers.
- Lis is a tool that can solve certain math problems on many computers at once.
- MINPACK is a group of tools for solving difficult math equations or finding the smallest error in a set of equations.
- The NAG Fortran Library is a collection of math and statistics tools for Fortran.
- NOVAS is a tool for calculations used in studying stars and planets. It comes in both Fortran and C versions.
- Netlib is a place to find many science computing tools, including BLAS, EISPACK, and LAPACK.
- PAW is a free tool for analyzing data, made at CERN.
- Portable, Extensible Toolkit for Scientific Computation (PETSc), is a set of tools and instructions for solving complex science problems that need many computers working together.
- QUADPACK is a FORTRAN 77 tool for calculating the area under curves.
- SLATEC is a FORTRAN 77 tool with over 1400 math and statistics functions.
- SOFA is a group of tools that use official methods for star and planet calculations. It comes in both Fortran and C versions.
- ARPACK is a group of Fortran tools for solving big math problems with special numbers.
- BLIS is an open-source tool for improving BLAS functions for different types of computers. It won the J. H. Wilkinson Prize for Numerical Software.
Java
Some special tools in Java help with math and numbers. Apache Commons is one of these tools and it can do things like working with straight lines and solving tricky math problems. Efficient Java Matrix Library (EJML) helps with working with groups of numbers called matrices.
JAMA is another tool for working with straight lines in Java, though it hasn’t been updated since 2005. Jblas: Linear Algebra for Java makes using two important math tools, BLAS and LAPACK, easier. There are several other tools like Parallel Colt, Matrix Toolkit Java, ojAlgo, exp4j, SuanShu, and Maja that help with different kinds of math and number work in Java.
OCaml
The OCaml programming language includes tools for working with numbers, such as special modules for handling multi-dimensional arrays. A library called Owl Scientific Computing offers many features for number-based tasks, including statistics, solving equations, and working with neural networks. Other libraries in OCaml, like Lacaml, connect to powerful math tools, and there are also libraries for creating graphs using PLplot, gnuplot, or matplotlib.
Perl
The Perl Data Language helps the Perl programming language work with big sets of numbers more easily. It can do tricky math with numbers and matrices, and connect to other tools like the GNU Scientific Library, LINPACK, PROJ, and PGPLOT for drawing graphs. There are extra tools on CPAN that add support for more advanced math tasks, such as using LAPACK, FFTW for special calculations, and gnuplot and PLplot for creating charts.
Python
See also: List of Python Mathematical libraries
Python has many tools that help with numbers and math.
- JAX is a tool for working with numbers and making calculations faster.
- NumPy helps you work with big groups of numbers and is widely used in Python.
- Pandas is great for organizing and studying data.
- SageMath is a big tool for many types of math problems.
- SciPy offers many scientific tools for Python.
- ScientificPython provides another set of science tools.
- SymPy is used for solving math problems with symbols, like algebra and calculus.
Others
There are special tools that help with math and numbers in computer programs.
- XNUMBERS helps with very detailed math calculations and works with Microsoft Excel.
- INTLAB is a tool for math that works with MATLAB and helps with exact number ranges.
Related articles
This article is a child-friendly adaptation of the Wikipedia article on List of numerical libraries, available under CC BY-SA 4.0.
Safekipedia