Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / doc / intro.texi
1 @cindex license of GSL
2 @cindex GNU General Public License
3 The GNU Scientific Library (GSL) is a collection of routines for
4 numerical computing.  The routines have been written from scratch in C,
5 and present a modern Applications Programming Interface
6 (API) for C programmers, allowing wrappers to be written for very
7 high level languages.  The source code is distributed under the GNU
8 General Public License.
9
10
11 @menu
12 * Routines available in GSL::   
13 * GSL is Free Software::        
14 * Obtaining GSL::               
15 * No Warranty::                 
16 * Reporting Bugs::              
17 * Further Information::         
18 * Conventions used in this manual::  
19 @end menu
20
21 @node Routines available in GSL
22 @section Routines available in GSL
23
24 The library covers a wide range of topics in numerical computing.
25 Routines are available for the following areas,
26
27 @iftex
28 @sp 1
29 @end iftex
30 @multitable @columnfractions 0.05 0.45 0.45 0.05
31 @item @tab Complex Numbers            @tab Roots of Polynomials        
32 @item @tab Special Functions          @tab Vectors and Matrices        
33 @item @tab Permutations               @tab Combinations              
34 @item @tab Sorting                    @tab BLAS Support               
35 @item @tab Linear Algebra             @tab CBLAS Library
36 @item @tab Fast Fourier Transforms    @tab Eigensystems               
37 @item @tab Random Numbers             @tab Quadrature                 
38 @item @tab Random Distributions       @tab Quasi-Random Sequences     
39 @item @tab Histograms                 @tab Statistics                 
40 @item @tab Monte Carlo Integration    @tab N-Tuples                   
41 @item @tab Differential Equations     @tab Simulated Annealing        
42 @item @tab Numerical Differentiation  @tab Interpolation              
43 @item @tab Series Acceleration        @tab Chebyshev Approximations   
44 @item @tab Root-Finding               @tab Discrete Hankel Transforms 
45 @item @tab Least-Squares Fitting      @tab Minimization               
46 @item @tab IEEE Floating-Point        @tab Physical Constants         
47 @item @tab Basis Splines              @tab Wavelets
48 @end multitable
49 @iftex
50 @sp 1
51 @end iftex
52
53 @noindent
54 The use of these routines is described in this manual.  Each chapter
55 provides detailed definitions of the functions, followed by example
56 programs and references to the articles on which the algorithms are
57 based.
58
59 Where possible the routines have been based on reliable public-domain
60 packages such as FFTPACK and QUADPACK, which the developers of GSL
61 have reimplemented in C with modern coding conventions.
62
63 @node GSL is Free Software
64 @section GSL is Free Software
65 @cindex free software, explanation of
66 The subroutines in the GNU Scientific Library are ``free software'';
67 this means that everyone is free to use them, and to redistribute them
68 in other free programs.  The library is not in the public domain; it is
69 copyrighted and there are conditions on its distribution.  These
70 conditions are designed to permit everything that a good cooperating
71 citizen would want to do.  What is not allowed is to try to prevent
72 others from further sharing any version of the software that they might
73 get from you.
74
75 Specifically, we want to make sure that you have the right to share
76 copies of programs that you are given which use the GNU Scientific
77 Library, that you receive their source code or else can get it if you
78 want it, that you can change these programs or use pieces of them in new
79 free programs, and that you know you can do these things.
80
81 To make sure that everyone has such rights, we have to forbid you to
82 deprive anyone else of these rights.  For example, if you distribute
83 copies of any code which uses the GNU Scientific Library, you must give
84 the recipients all the rights that you have received.  You must make
85 sure that they, too, receive or can get the source code, both to the
86 library and the code which uses it.  And you must tell them their
87 rights.  This means that the library should not be redistributed in
88 proprietary programs.
89
90 Also, for our own protection, we must make certain that everyone finds
91 out that there is no warranty for the GNU Scientific Library.  If these
92 programs are modified by someone else and passed on, we want their
93 recipients to know that what they have is not what we distributed, so
94 that any problems introduced by others will not reflect on our
95 reputation.
96
97 The precise conditions for the distribution of software related to the
98 GNU Scientific Library are found in the GNU General Public License
99 (@pxref{GNU General Public License}).  Further information about this
100 license is available from the GNU Project webpage @cite{Frequently Asked
101 Questions about the GNU GPL},
102
103 @itemize @asis
104 @item 
105 @uref{http://www.gnu.org/copyleft/gpl-faq.html}
106 @end itemize
107
108 @noindent
109 The Free Software Foundation also operates a license consulting
110 service for commercial users (contact details available from
111 @uref{http://www.fsf.org/}).
112
113 @node Obtaining GSL
114 @section Obtaining GSL
115 @cindex obtaining GSL
116 @cindex downloading GSL
117 @cindex mailing list for GSL announcements
118 @cindex info-gsl mailing list
119 The source code for the library can be obtained in different ways, by
120 copying it from a friend, purchasing it on @sc{cdrom} or downloading it
121 from the internet. A list of public ftp servers which carry the source
122 code can be found on the GNU website,
123
124 @itemize @asis
125 @item 
126 @uref{http://www.gnu.org/software/gsl/}
127 @end itemize
128
129 @noindent
130 The preferred platform for the library is a GNU system, which allows it
131 to take advantage of additional features in the GNU C compiler and GNU C
132 library.  However, the library is fully portable and should compile on
133 most systems with a C compiler.  Precompiled versions of the library can be purchased from
134 commercial redistributors listed on the website above.
135
136 Announcements of new releases, updates and other relevant events are
137 made on the @code{info-gsl@@gnu.org} mailing list.  To subscribe to this
138 low-volume list, send an email of the following form:
139
140 @example
141 To: info-gsl-request@@gnu.org 
142 Subject: subscribe
143 @end example
144
145 @noindent
146 You will receive a response asking you to reply in order to confirm
147 your subscription.
148
149 @node  No Warranty
150 @section No Warranty
151 @cindex warranty (none)
152 The software described in this manual has no warranty, it is provided
153 ``as is''.  It is your responsibility to validate the behavior of the
154 routines and their accuracy using the source code provided, or to
155 purchase support and warranties from commercial redistributors.  Consult
156 the GNU General Public license for further details (@pxref{GNU General
157 Public License}).
158
159 @node  Reporting Bugs
160 @section Reporting Bugs
161 @cindex reporting bugs in GSL
162 @cindex bugs, how to report
163 @cindex bug-gsl mailing list
164 @cindex mailing list, bug-gsl
165 A list of known bugs can be found in the @file{BUGS} file included in
166 the GSL distribution.  Details of compilation problems can be found in
167 the @file{INSTALL} file.
168
169 If you find a bug which is not listed in these files, please report it to
170 @email{bug-gsl@@gnu.org}.
171
172 All bug reports should include:
173
174 @itemize @bullet
175 @item
176 The version number of GSL
177 @item
178 The hardware and operating system
179 @item
180 The compiler used, including version number and compilation options
181 @item
182 A description of the bug behavior
183 @item
184 A short program which exercises the bug
185 @end itemize
186
187 @noindent
188 It is useful if you can check whether the same problem occurs when the
189 library is compiled without optimization.  Thank you.
190
191 Any errors or omissions in this manual can also be reported to the
192 same address.
193
194 @node  Further Information
195 @section Further Information
196 @cindex mailing list archives
197 @cindex website, developer information
198 @cindex contacting the GSL developers
199 Additional information, including online copies of this manual, links to
200 related projects, and mailing list archives are available from the
201 website mentioned above.  
202
203 Any questions about the use and installation of the library can be asked
204 on the mailing list @code{help-gsl@@gnu.org}.  To subscribe to this
205 list, send an email of the following form:
206
207 @example
208 To: help-gsl-request@@gnu.org
209 Subject: subscribe
210 @end example
211
212 @noindent
213 This mailing list can be used to ask questions not covered by this
214 manual, and to contact the developers of the library.
215
216 If you would like to refer to the GNU Scientific Library in a journal
217 article, the recommended way is to cite this reference manual,
218 e.g. @cite{M. Galassi et al, GNU Scientific Library Reference Manual (2nd
219 Ed.), ISBN 0954161734}.
220
221 If you want to give a url, use ``@uref{http://www.gnu.org/software/gsl/}''.
222
223 @node Conventions used in this manual
224 @section Conventions used in this manual
225 @cindex conventions, used in manual
226 @cindex examples, conventions used in
227 @cindex shell prompt
228 @cindex @code{$}, shell prompt
229 This manual contains many examples which can be typed at the keyboard.
230 A command entered at the terminal is shown like this,
231
232 @example
233 $ @i{command}
234 @end example
235
236 @noindent
237 @cindex dollar sign @code{$}, shell prompt
238 The first character on the line is the terminal prompt, and should not
239 be typed.  The dollar sign @samp{$} is used as the standard prompt in
240 this manual, although some systems may use a different character.
241
242 The examples assume the use of the GNU operating system.  There may be
243 minor differences in the output on other systems.  The commands for
244 setting environment variables use the Bourne shell syntax of the
245 standard GNU shell (@code{bash}).
246
247