In C ++, the database status is very high. Mr. Bjarne stroustrup, father of C ++, has repeatedly said that designing libraries to Expand functions is better than designing more syntaxes. In reality, C ++ has a wide variety of database categories and has a wide range of solutions, from lightweight to heavyweight. Many of them are the masterpiece of thinking that opens your eyes or sighs with hope. Because the number of databases is very large and limited to the author's level, many of them do not know. Therefore, some libraries mentioned in this article are well-known large databases.
Introduction of C ++ major libraries -- Scientific Computing
1. Blitz ++
Reference: http://www.oonumerics.org/blitz
Blitz ++ is an efficient function library for numerical computing. It is designed to create a set of computing environments that are as convenient as C ++ and faster than FORTRAN. Usually, the value written in C ++ProgramIt is about 20% slower than Fortran, so blitz ++ just wants to get rid of this shortcoming. The method is to use the C ++ template technology to execute programs faster than FORTRAN.
Blitz ++ is still developing. It is not available for common Linear Algebra methods such as SVD, FFTS, and qmres, however, the user can easily use the functions provided by blitz ++ to construct the function.
2. pooma
Reference: http://www.codesourcery.com/pooma/pooma
Pooma is a free high-performance C ++ library for processing parallel scientific computing. Pooma's object-oriented design facilitates rapid Program Development and optimizes parallel machines to achieve the highest efficiency, making it easy to use in industrial and research environments.
3. MTL
Reference: http://www.osl.iu.edu/research/mtl
Matrix Template Library (MTL) is a high-performance generic component library that provides a large number of linear algebra functions for various format matrices. When some applications use high-performance compilers, such as Intel compilersCodeIt can be seen that the efficiency is almost the same as that of handwriting.
4. cgal
Reference Site: http://www.cgal.org/
The computational geometry algorithms library aims to provide most of the important solutions and methods in computational ry to industrial and academic users in the form of a C ++ library.
Intel math kernel Library
1. Basic linear algebra (BLAs) operations on Vectors and vectors, vectors and matrices, and matrices and Matrices
2. sparse linear algebra
3. Fast Fourier Transformation (single precision/Double Precision) (fftw)
4. LAPACK (solving linear equations, least variance, feature values, and Sylvester equations)
5. Vector Math Library (VML)
6. Vector statistics Library (VSL)
7. Advanced Discrete Fourier Transformation
Imsl
Software name imsl C numerical Library (incompatible with vc6 compiler)
Programming Languages C, forton, C #, Java
Resource URL http://www.vni.com/
The function overview is divided into two parts: the Statistical Library and the mathematical library. The mathematical library contains Applied Mathematics and special functions. imsl library-has become the industrial standard for numerical analysis solutions. The imsl Library provides the most complete and trusted function libraries. Imsl value Library provides the most widely used imsl library in the world.Algorithm, There are more than 370 verified, the most correct and thread-safe mathematical and statistical programs. The imsl Fortran Library provides a new generation of programs based on the Fortran 90 library, which can demonstrate the optimal algorithm performance applied to multi-processor and other high-performance computing systems.
LAPACK
Software name: Linear Algebra package
Programming language Fortran 77
Resource Web http://www.netlib.org/lapack
Function overview linear algebra computation subroutine package
LAPACK ++
Software name: Linear Algebra package in C ++
Programming Language C ++
Resource Web http://math.nist.gov/lapack++/
Function overview C ++ linear algebra subprogram package
Blas
Software name: Basic linear algebra subroutines
Programming language Fortran 77
Kagstrom B., Ling P., Van Loan C.
Resource Web http://www.netlib.org/blas
Function overview Blas is a collection of subprograms that execute vector and matrix operations.
Ublas
Blas in C ++ with expression templates. Blas in the expression template form in C ++,
GSL
Software name: GNU Scientific Library (Linux)
Programming Languages C, C ++ compable
Resource Web http://www.gnu.org/software/gsl/
A wide range of features, including common content of Numerical Analysis
Blitz ++
Software name blitz ++ (incompatible with the vc6 compiler)
Resource Web site http://sourceforge.net/project/showfiles.php? Group_id = 63961
Function overview the current versions provide dense arrays and vectors, random number generators, and small vectors and matrices. it is an efficient numeric computing function library designed to build a convenient and faster numeric computing environment like C ++. Generally, the numerical program written in C ++ is about 20% slower than that written in FORTRAN. Therefore, blitz ++ just wants to get rid of this shortcoming. The method is to use the C ++ template technology to execute programs faster than FORTRAN.
MTL
Software name Matrix Template Library (compatible with vc6 compiler)
Resource Web http://www.osl.iu.edu/research/mtl/
Function Overview The Matrix Template Library (MTL) is a high-performance generic component library that provides comprehensive linear algebra functionality for a wide variety of matrix formats. MTL focuses on Linear Algebra-related computing tasks, such as matrix generation (diagonal, bounded, sparse, symmetric, etc.), related computing, transformation, and operations on one-dimensional vectors.