| @cindex license of GSL |
| @cindex GNU General Public License |
| The GNU Scientific Library (GSL) is a collection of routines for |
| numerical computing. The routines have been written from scratch in C, |
| and present a modern Applications Programming Interface |
| (API) for C programmers, allowing wrappers to be written for very |
| high level languages. The source code is distributed under the GNU |
| General Public License. |
| |
| |
| @menu |
| * Routines available in GSL:: |
| * GSL is Free Software:: |
| * Obtaining GSL:: |
| * No Warranty:: |
| * Reporting Bugs:: |
| * Further Information:: |
| * Conventions used in this manual:: |
| @end menu |
| |
| @node Routines available in GSL |
| @section Routines available in GSL |
| |
| The library covers a wide range of topics in numerical computing. |
| Routines are available for the following areas, |
| |
| @iftex |
| @sp 1 |
| @end iftex |
| @multitable @columnfractions 0.05 0.45 0.45 0.05 |
| @item @tab Complex Numbers @tab Roots of Polynomials |
| @item @tab Special Functions @tab Vectors and Matrices |
| @item @tab Permutations @tab Combinations |
| @item @tab Sorting @tab BLAS Support |
| @item @tab Linear Algebra @tab CBLAS Library |
| @item @tab Fast Fourier Transforms @tab Eigensystems |
| @item @tab Random Numbers @tab Quadrature |
| @item @tab Random Distributions @tab Quasi-Random Sequences |
| @item @tab Histograms @tab Statistics |
| @item @tab Monte Carlo Integration @tab N-Tuples |
| @item @tab Differential Equations @tab Simulated Annealing |
| @item @tab Numerical Differentiation @tab Interpolation |
| @item @tab Series Acceleration @tab Chebyshev Approximations |
| @item @tab Root-Finding @tab Discrete Hankel Transforms |
| @item @tab Least-Squares Fitting @tab Minimization |
| @item @tab IEEE Floating-Point @tab Physical Constants |
| @item @tab Wavelets |
| @end multitable |
| @iftex |
| @sp 1 |
| @end iftex |
| |
| @noindent |
| The use of these routines is described in this manual. Each chapter |
| provides detailed definitions of the functions, followed by example |
| programs and references to the articles on which the algorithms are |
| based. |
| |
| Where possible the routines have been based on reliable public-domain |
| packages such as FFTPACK and QUADPACK, which the developers of GSL |
| have reimplemented in C with modern coding conventions. |
| |
| @node GSL is Free Software |
| @section GSL is Free Software |
| @cindex free software, explanation of |
| The subroutines in the GNU Scientific Library are ``free software''; |
| this means that everyone is free to use them, and to redistribute them |
| in other free programs. The library is not in the public domain; it is |
| copyrighted and there are conditions on its distribution. These |
| conditions are designed to permit everything that a good cooperating |
| citizen would want to do. What is not allowed is to try to prevent |
| others from further sharing any version of the software that they might |
| get from you. |
| |
| Specifically, we want to make sure that you have the right to share |
| copies of programs that you are given which use the GNU Scientific |
| Library, that you receive their source code or else can get it if you |
| want it, that you can change these programs or use pieces of them in new |
| free programs, and that you know you can do these things. |
| |
| To make sure that everyone has such rights, we have to forbid you to |
| deprive anyone else of these rights. For example, if you distribute |
| copies of any code which uses the GNU Scientific Library, you must give |
| the recipients all the rights that you have received. You must make |
| sure that they, too, receive or can get the source code, both to the |
| library and the code which uses it. And you must tell them their |
| rights. This means that the library should not be redistributed in |
| proprietary programs. |
| |
| Also, for our own protection, we must make certain that everyone finds |
| out that there is no warranty for the GNU Scientific Library. If these |
| programs are modified by someone else and passed on, we want their |
| recipients to know that what they have is not what we distributed, so |
| that any problems introduced by others will not reflect on our |
| reputation. |
| |
| The precise conditions for the distribution of software related to the |
| GNU Scientific Library are found in the GNU General Public License |
| (@pxref{GNU General Public License}). Further information about this |
| license is available from the GNU Project webpage @cite{Frequently Asked |
| Questions about the GNU GPL}, |
| |
| @itemize @asis |
| @item |
| @uref{http://www.gnu.org/copyleft/gpl-faq.html} |
| @end itemize |
| |
| @noindent |
| The Free Software Foundation also operates a license consulting |
| service for commercial users (contact details available from |
| @uref{http://www.fsf.org/}). |
| |
| @node Obtaining GSL |
| @section Obtaining GSL |
| @cindex obtaining GSL |
| @cindex downloading GSL |
| @cindex mailing list for GSL announcements |
| @cindex info-gsl mailing list |
| The source code for the library can be obtained in different ways, by |
| copying it from a friend, purchasing it on @sc{cdrom} or downloading it |
| from the internet. A list of public ftp servers which carry the source |
| code can be found on the GNU website, |
| |
| @itemize @asis |
| @item |
| @uref{http://www.gnu.org/software/gsl/} |
| @end itemize |
| |
| @noindent |
| The preferred platform for the library is a GNU system, which allows it |
| to take advantage of additional features in the GNU C compiler and GNU C |
| library. However, the library is fully portable and should compile on |
| most systems with a C compiler. Precompiled versions of the library can be purchased from |
| commercial redistributors listed on the website above. |
| |
| Announcements of new releases, updates and other relevant events are |
| made on the @code{info-gsl@@gnu.org} mailing list. To subscribe to this |
| low-volume list, send an email of the following form: |
| |
| @example |
| To: info-gsl-request@@gnu.org |
| Subject: subscribe |
| @end example |
| |
| @noindent |
| You will receive a response asking you to reply in order to confirm |
| your subscription. |
| |
| @node No Warranty |
| @section No Warranty |
| @cindex warranty (none) |
| The software described in this manual has no warranty, it is provided |
| ``as is''. It is your responsibility to validate the behavior of the |
| routines and their accuracy using the source code provided, or to |
| purchase support and warranties from commercial redistributors. Consult |
| the GNU General Public license for further details (@pxref{GNU General |
| Public License}). |
| |
| @node Reporting Bugs |
| @section Reporting Bugs |
| @cindex reporting bugs in GSL |
| @cindex bugs, how to report |
| @cindex bug-gsl mailing list |
| @cindex mailing list, bug-gsl |
| A list of known bugs can be found in the @file{BUGS} file included in |
| the GSL distribution. Details of compilation problems can be found in |
| the @file{INSTALL} file. |
| |
| If you find a bug which is not listed in these files, please report it to |
| @email{bug-gsl@@gnu.org}. |
| |
| All bug reports should include: |
| |
| @itemize @bullet |
| @item |
| The version number of GSL |
| @item |
| The hardware and operating system |
| @item |
| The compiler used, including version number and compilation options |
| @item |
| A description of the bug behavior |
| @item |
| A short program which exercises the bug |
| @end itemize |
| |
| @noindent |
| It is useful if you can check whether the same problem occurs when the |
| library is compiled without optimization. Thank you. |
| |
| Any errors or omissions in this manual can also be reported to the |
| same address. |
| |
| @node Further Information |
| @section Further Information |
| @cindex mailing list archives |
| @cindex website, developer information |
| @cindex contacting the GSL developers |
| Additional information, including online copies of this manual, links to |
| related projects, and mailing list archives are available from the |
| website mentioned above. |
| |
| Any questions about the use and installation of the library can be asked |
| on the mailing list @code{help-gsl@@gnu.org}. To subscribe to this |
| list, send an email of the following form: |
| |
| @example |
| To: help-gsl-request@@gnu.org |
| Subject: subscribe |
| @end example |
| |
| @noindent |
| This mailing list can be used to ask questions not covered by this |
| manual, and to contact the developers of the library. |
| |
| If you would like to refer to the GNU Scientific Library in a journal |
| article, the recommended way is to cite this reference manual, |
| e.g. @cite{M. Galassi et al, GNU Scientific Library Reference Manual (2nd |
| Ed.), ISBN 0954161734}. |
| |
| If you want to give a url, use ``@uref{http://www.gnu.org/software/gsl/}''. |
| |
| @node Conventions used in this manual |
| @section Conventions used in this manual |
| @cindex conventions, used in manual |
| @cindex examples, conventions used in |
| @cindex shell prompt |
| @cindex @code{$}, shell prompt |
| This manual contains many examples which can be typed at the keyboard. |
| A command entered at the terminal is shown like this, |
| |
| @example |
| $ @i{command} |
| @end example |
| |
| @noindent |
| @cindex dollar sign @code{$}, shell prompt |
| The first character on the line is the terminal prompt, and should not |
| be typed. The dollar sign @samp{$} is used as the standard prompt in |
| this manual, although some systems may use a different character. |
| |
| The examples assume the use of the GNU operating system. There may be |
| minor differences in the output on other systems. The commands for |
| setting environment variables use the Bourne shell syntax of the |
| standard GNU shell (@code{bash}). |
| |
| |