GSL - GNU Scientific Library - GNU Project - Free Software Foundation (FSF)
Description: A free numerical library for C programmers. Distributed under the GNU General Public license.
Keywords: free numerical library, scientific library, numerical library, free software, GNU, GPL, free, Special Functions, Vectors, Matrices, Permutations, Sorting, BLAS, Linear Algebra, Eigensystems, Fast Fourier Transforms, FFTs, Quadrature, Random Numbers, Quasi-Random Sequences, Random Distributions, Statistics, Histograms, N-Tuples, Monte Carlo Integration, Simulated Annealing, Differential Equations, Interpolation, Numerical Differentiation, Chebyshev Approximation, Series Acceleration, Discrete Hankel Transforms, Root-Finding, Minimization, Least-Squares Fitting, Physical Constants, IEEE Floating-Point

### GSL - GNU Scientific Library

#### Table of contents

- Introduction to GSL
- Downloading GSL
- Documentation
- Supported Platforms
- Mailing Lists
- Motivation
- Special Features
- Licensing
- Commercial Support
- More Information
- Related Packages
- Project Background
- Citations
- How to help
- Release History

#### Introduction to GSL

The 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, special functions and least-squares fitting. There are over 1000 functions in total.

The current version is GSL-1.6. It was released on 31 December 2004.

Here is a screenshot of some GSL code (png, 14k).

The complete range of subject areas covered by the library includes,

Complex Numbers | Roots of Polynomials | Special Functions
Vectors and Matrices | Permutations | Sorting
BLAS Support | Linear Algebra | Eigensystems
Fast Fourier Transforms | Quadrature | Random Numbers
Quasi-Random Sequences | Random Distributions | Statistics
Histograms | N-Tuples | Monte Carlo Integration
Simulated Annealing | Differential Equations | Interpolation
Numerical Differentiation | Chebyshev Approximation | Series Acceleration
Discrete Hankel Transforms | Root-Finding | Minimization
Least-Squares Fitting | Physical Constants | IEEE Floating-Point

Unlike the licenses of proprietary numerical libraries the license of GSL does not restrict scientific cooperation. It allows you to share your programs freely with others.

#### Downloading GSL

GSL can be found in the subdirectory `/gnu/gsl/` on your favorite GNU mirror.

- Master GNU ftp site: ftp://ftp.gnu.org/gnu/gsl/

For other ways to obtain GSL, please read How to get GNU Software

#### Documentation

GSL includes a 500 page reference manual in Texinfo format. You can can print the manual in postscript or read it online using the shell command info gsl-ref (if the library is installed).

The GSL Reference Manual is available online,

- GSL Reference Manual - HTML
- GSL Reference Manual - Gzipped Postscript

The manual is also available as a printed book (under the GNU Free Documentation License),

> GNU Scientific Library Reference Manual - Second Edition,
> M. Galassi et al, ISBN 0954161734 (paperback).

It is available from most online bookstores. For ordering information, see www.network-theory.co.uk.

#### Supported Platforms

GSL is developed on the following platforms,

- GNU/Hurd and GNU/Linux with gcc

It has been reported to compile on the following other platforms,

- SunOS 4.1.3 & Solaris 2.x (Sparc)
- Alpha GNU/Linux, gcc
- HP-UX 9/10/11, PA-RISC, gcc/cc
- IRIX 6.5, gcc
- m68k NeXTSTEP, gcc
- Compaq Alpha Tru64 Unix, gcc
- FreeBSD, OpenBSD & NetBSD, gcc
- Cygwin
- Apple Darwin 5.4
- Hitachi SR8000 Super Technical Server, cc

We require that GSL should build on any Unix-like system with an ANSI C compiler, so if doesn't, that's a bug and we would love a patch!

If you have found a bug, please send a note to bug-gsl@gnu.org.

#### Mailing Lists

Announcements of new releases are made on the Info-gsl <info-gsl@gnu.org> mailing list.

Bug reports for the GNU Scientific Library should be sent to the Bug-gsl <bug-gsl@gnu.org> mailing list.

If you have questions about installation, how GSL works and how it is used, or general questions concerning GSL, you can send an e-mail to the Help-gsl <help-gsl@gnu.org> mailing list.

#### Motivation

Here are some of the main benefits of using a free scientific library under the GNU General Public License,

- allows easier collaboration, library is freely available to everyone.
- software using the library can be released publicly as source-code.
- you can adapt the source code to your needs.
- respects your privacy - does not impose any conditions on "in-house" use.
- you can contribute back improvements to the user community.

#### Special Features

The library uses an object-oriented design. Different algorithms can be plugged-in easily or changed at run-time without recompiling the program.

It is intended for ordinary scientific users. Anyone who knows some C programming will be able to start using the library straight-away.

The interface was designed to be simple to link into very high-level languages, such as GNU Guile or Python

The library is thread-safe.

Where possible the routines have been based on reliable public-domain Fortran packages such as FFTPACK and QUADPACK, which the developers of GSL have reimplemented in C with modern coding conventions.

#### Licensing

GSL is distributed under the terms of the GNU General Public License (GPL).

The reasons why the GNU Project uses the GPL are described in the following articles:

- Copyleft: Pragmatic Idealism by Richard Stallman
- Why you should not use the Library GPL for your next library by Richard Stallman

Additional information for researchers is available in the following article:

- Releasing Free Software if you work at a University by Richard Stallman

Some answers to common questions about the license:

> If I write an application which uses GSL am I forced to distribute that application?
> No. The license gives you the option to distribute your application if you want to. You do not have to exercise this option in the license.

> If I wanted to distribute an application which uses GSL what license would I need to use?
> The GNU General Public License (GPL).

> Do you ever make exceptions to allow GSL to be redistributed in proprietary-licensed software?
> No, sorry.

The bottom line for commercial users:

> GSL can be used internally ("in-house") without restriction, but not redistributed in proprietary-licensed software.

#### Commercial Support

Commercial support for GNU software is available from companies listed in the GNU Service Directory.

The following companies specifically mention the GNU Scientific Library,

- Network Theory Ltd provides maintenance contracts and support for GSL.

#### More Information

The development website for GSL is at http://sources.redhat.com/gsl/.

The development website has a list of precompiled binaries available for different platforms, wrappers for different languages and other information.

The main Debian package for GSL is libgsl0-dev.

The development website also contains the gsl-discuss development mailing list archives.

#### Related Packages

GSL requires a BLAS library for vector and matrix operations. The default CBLAS library supplied with GSL can be replaced by ATLAS for better performance,

- ATLAS - a portable self-optimising BLAS library with CBLAS interface

ATLAS is free software and its license is compatible with the GNU GPL.

Other packages that are useful for scientific computing are:

- GLPK - GNU Linear Programming Kit
- FFTW - Large-scale Fast Fourier Transforms

Both of these packages are free software (GNU GPL).

#### Project Background

The project was conceived in 1996 by Dr M. Galassi and Dr J. Theiler of Los Alamos National Laboratory.

They were joined by other physicists who also felt that the licenses of existing libraries were hindering scientific cooperation.

Most of the library has been written by a relatively small number of people with backgrounds in computational physics in order to provide a consistent and reasonably-designed framework.

Overall development of the library and the design and implementation of the major modules was carried out by Dr G. Jungman and Dr B. Gough. Modules were also written by Dr J. Davies, R. Priedhorsky, Dr M. Booth, and Dr F. Rossi, along with many useful contributions from others in the user community. Debian packages for the library are maintained by Dr D. Eddelbuettel.

#### Citations

If you would like to refer to the GNU Scientific Library in a journal article, the recommended way is to cite the reference manual, e.g. M. Galassi et al, GNU Scientific Library Reference Manual (2nd Ed.), ISBN 0954161734.

If you want to give a url, use "http://www.gnu.org/software/gsl/".

#### How to help

Any contributions from experts in numerical analysis would be welcome. You can contact the developers through the mailing list gsl-discuss@sources.redhat.com.

#### Release History

- gsl-1.6 was released in December 2004.
- gsl-1.5 was released in June 2004.
- gsl-1.4 was released in August 2003.
- gsl-1.3 was released in December 2002.
- gsl-1.2 was released in July 2002.
- gsl-1.1.1 was released in March 2002.
- gsl-1.1 was released in February 2002.
- gsl-1.0 was released in November 2001.
- gsl-0.9.4 was released in October 2001 (fifth beta-test release).
- gsl-0.9.3 was released in September 2001 (fourth beta-test release).
- gsl-0.9.2 was released in September 2001 (third beta-test release).
- gsl-0.9.1 was released in August 2001 (second beta-test release).
- gsl-0.9 was released in July 2001 (first beta-test release).
- gsl-0.8 was released in May 2001.
- gsl-0.7 was released in October 2000.
- gsl-0.6 was released in June 2000.
- gsl-0.5 was released in December 1999.
- gsl-0.4.1 was released in February 1999.
- gsl-0.4 was released in August 1998.
- gsl-0.3f was released in May 1998.
- gsl-0.3b was released in February 1998.
- gsl-0.2 was released in October 1996.
- gsl-0.1 was released in sometime in 1996.
- gsl-0.0 was released in sometime in 1996.
- The gsl project was started in May 1996 (earliest recorded changelog entry).

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on these web pages to webmasters@gnu.org, send other questions to gnu@gnu.org.

Copyright (C) 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Updated: $Date: 2004/12/31 19:15:50 $ $Author: bjg $