Blame doc/intro.rst

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