GNU Scientific Library
From Encoresoup - The Ultimate Guide to Free/Open Source Software
|
| GNU Scientific Library | |
|---|---|
| Developer: | GNU Project |
| Stable release |
1.11 (31 March 2008) |
| Genre: | Numerical library |
| License: | GNU General Public License |
| Website: | http://www.gnu.org/software/gsl/ |
In computing, the GNU Scientific Library (or GSL) is a software library written in the C programming language for numerical calculations in applied mathematics and science. The GSL is part of the GNU project and is distributed under the GNU General Public License.
Software which uses GSL includes Octave, PSPP and Perl Data Language.
Contents |
[edit] Example
The following example program calculates the value of the Bessel function for 5 [1]:
#include <stdio.h> #include <gsl/gsl_sf_bessel.h> int main(void) { double x = 5.0; double y = gsl_sf_bessel_J0(x); printf("J0(%g) = %.18e\n", x, y); return 0; }
The example program has to be linked to the GSL library upon compilation:
gcc $(gsl-config --cflags) example.c $(gsl-config --libs)
The output is shown below, and should be correct to double-precision accuracy:
J0(5) = -1.775967713143382920e-01
[edit] Features
The software library provides facilities for:
- Basic mathematical functions
- Complex numbers
- Polynomials
- Special functions
- Vectors and matrices
- Permutations
- Combinations
- Sorting
- BLAS
- Linear algebra
- Eigensystems
- Fast Fourier transforms
- Numerical integration
- Random number generation
- Quasi-random sequences
- Random number distributions
- Statistics
- Histograms
- N-tuples
- Monte Carlo integration
- Simulated annealing
- Ordinary differential equations
- Interpolation
- Numerical differentiation
- Chebyshev approximations
- Series acceleration
- Discrete Hankel transform
- Root-finding in one and multiple dimensions
- Minimization in one and multiple dimensions
- Least-squares fitting
- Nonlinear least-squares fitting
- Physical constants
- IEEE floating-point arithmetic
[edit] C++ support
The GSL can be used in C++ classes, but not using pointers to member functions, because the type of pointer to member function is different from pointer to function [2]. Instead, pointers to static functions have to be used. C++ wrappers for GSL are available [3].
[edit] See also
- netlib
- Numerical Recipes
- list of numerical analysis software

![The Cathedral And The Bazaar [Amazon] The Cathedral And The Bazaar [Amazon]](http://openx.eclecticdave.com/images/51hm1xHqnsL._SL160_.jpg)
![Linksys NAS200 Network Storage System with 2 Bays [Amazon] Linksys NAS200 Network Storage System with 2 Bays [Amazon]](http://openx.eclecticdave.com/images/418B2RSYTAL._SL160_.jpg)
![Practical Django Projects [Amazon] Practical Django Projects [Amazon]](http://openx.eclecticdave.com/images/51BFdH6VWsL._SL160_.jpg)

