Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / specfunc / gsl_sf_hyperg.h
1 /* specfunc/gsl_sf_hyperg.h
2  * 
3  * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
4  * 
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3 of the License, or (at
8  * your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  */
19
20 /* Author:  G. Jungman */
21
22 #ifndef __GSL_SF_HYPERG_H__
23 #define __GSL_SF_HYPERG_H__
24
25 #include <gsl/gsl_sf_result.h>
26
27 #undef __BEGIN_DECLS
28 #undef __END_DECLS
29 #ifdef __cplusplus
30 # define __BEGIN_DECLS extern "C" {
31 # define __END_DECLS }
32 #else
33 # define __BEGIN_DECLS /* empty */
34 # define __END_DECLS /* empty */
35 #endif
36
37 __BEGIN_DECLS
38
39
40 /* Hypergeometric function related to Bessel functions
41  * 0F1[c,x] =
42  *            Gamma[c]    x^(1/2(1-c)) I_{c-1}(2 Sqrt[x])
43  *            Gamma[c] (-x)^(1/2(1-c)) J_{c-1}(2 Sqrt[-x])
44  *
45  * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
46  */
47 int gsl_sf_hyperg_0F1_e(double c, double x, gsl_sf_result * result);
48 double gsl_sf_hyperg_0F1(const double c, const double x);
49
50
51 /* Confluent hypergeometric function  for integer parameters.
52  * 1F1[m,n,x] = M(m,n,x)
53  *
54  * exceptions: 
55  */
56 int gsl_sf_hyperg_1F1_int_e(const int m, const int n, const double x, gsl_sf_result * result);
57 double gsl_sf_hyperg_1F1_int(const int m, const int n, double x);
58
59
60 /* Confluent hypergeometric function.
61  * 1F1[a,b,x] = M(a,b,x)
62  *
63  * exceptions:
64  */
65 int gsl_sf_hyperg_1F1_e(const double a, const double b, const double x, gsl_sf_result * result);
66 double gsl_sf_hyperg_1F1(double a, double b, double x);
67
68
69 /* Confluent hypergeometric function for integer parameters.
70  * U(m,n,x)
71  *
72  * exceptions:
73  */
74 int gsl_sf_hyperg_U_int_e(const int m, const int n, const double x, gsl_sf_result * result);
75 double gsl_sf_hyperg_U_int(const int m, const int n, const double x);
76
77
78 /* Confluent hypergeometric function for integer parameters.
79  * U(m,n,x)
80  *
81  * exceptions:
82  */
83 int gsl_sf_hyperg_U_int_e10_e(const int m, const int n, const double x, gsl_sf_result_e10 * result);
84
85
86 /* Confluent hypergeometric function.
87  * U(a,b,x)
88  *
89  * exceptions:
90  */
91 int gsl_sf_hyperg_U_e(const double a, const double b, const double x, gsl_sf_result * result);
92 double gsl_sf_hyperg_U(const double a, const double b, const double x);
93
94
95 /* Confluent hypergeometric function.
96  * U(a,b,x)
97  *
98  * exceptions:
99  */
100 int gsl_sf_hyperg_U_e10_e(const double a, const double b, const double x, gsl_sf_result_e10 * result);
101
102
103 /* Gauss hypergeometric function 2F1[a,b,c,x]
104  * |x| < 1
105  *
106  * exceptions:
107  */
108 int gsl_sf_hyperg_2F1_e(double a, double b, const double c, const double x, gsl_sf_result * result);
109 double gsl_sf_hyperg_2F1(double a, double b, double c, double x);
110
111
112 /* Gauss hypergeometric function
113  * 2F1[aR + I aI, aR - I aI, c, x]
114  * |x| < 1
115  *
116  * exceptions:
117  */
118 int gsl_sf_hyperg_2F1_conj_e(const double aR, const double aI, const double c, const double x, gsl_sf_result * result);
119 double gsl_sf_hyperg_2F1_conj(double aR, double aI, double c, double x);
120
121
122 /* Renormalized Gauss hypergeometric function
123  * 2F1[a,b,c,x] / Gamma[c]
124  * |x| < 1
125  *
126  * exceptions:
127  */
128 int gsl_sf_hyperg_2F1_renorm_e(const double a, const double b, const double c, const double x, gsl_sf_result * result);
129 double gsl_sf_hyperg_2F1_renorm(double a, double b, double c, double x);
130
131
132 /* Renormalized Gauss hypergeometric function
133  * 2F1[aR + I aI, aR - I aI, c, x] / Gamma[c]
134  * |x| < 1
135  *
136  * exceptions:
137  */
138 int gsl_sf_hyperg_2F1_conj_renorm_e(const double aR, const double aI, const double c, const double x, gsl_sf_result * result);
139 double gsl_sf_hyperg_2F1_conj_renorm(double aR, double aI, double c, double x);
140
141
142 /* Mysterious hypergeometric function. The series representation
143  * is a divergent hypergeometric series. However, for x < 0 we
144  * have 2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)
145  *
146  * exceptions: GSL_EDOM
147  */
148 int     gsl_sf_hyperg_2F0_e(const double a, const double b, const double x, gsl_sf_result * result);
149 double     gsl_sf_hyperg_2F0(const double a, const double b, const double x);
150
151
152 __END_DECLS
153
154 #endif /* __GSL_SF_HYPERG_H__ */