Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:03:53

0001 /* specfunc/gsl_sf_hyperg.h
0002  * 
0003  * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman
0004  * 
0005  * This program is free software; you can redistribute it and/or modify
0006  * it under the terms of the GNU General Public License as published by
0007  * the Free Software Foundation; either version 3 of the License, or (at
0008  * your option) any later version.
0009  * 
0010  * This program is distributed in the hope that it will be useful, but
0011  * WITHOUT ANY WARRANTY; without even the implied warranty of
0012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013  * General Public License for more details.
0014  * 
0015  * You should have received a copy of the GNU General Public License
0016  * along with this program; if not, write to the Free Software
0017  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0018  */
0019 
0020 /* Author:  G. Jungman */
0021 
0022 #ifndef __GSL_SF_HYPERG_H__
0023 #define __GSL_SF_HYPERG_H__
0024 
0025 #include <gsl/gsl_sf_result.h>
0026 
0027 #undef __BEGIN_DECLS
0028 #undef __END_DECLS
0029 #ifdef __cplusplus
0030 # define __BEGIN_DECLS extern "C" {
0031 # define __END_DECLS }
0032 #else
0033 # define __BEGIN_DECLS /* empty */
0034 # define __END_DECLS /* empty */
0035 #endif
0036 
0037 __BEGIN_DECLS
0038 
0039 
0040 /* Hypergeometric function related to Bessel functions
0041  * 0F1[c,x] =
0042  *            Gamma[c]    x^(1/2(1-c)) I_{c-1}(2 Sqrt[x])
0043  *            Gamma[c] (-x)^(1/2(1-c)) J_{c-1}(2 Sqrt[-x])
0044  *
0045  * exceptions: GSL_EOVRFLW, GSL_EUNDRFLW
0046  */
0047 int gsl_sf_hyperg_0F1_e(double c, double x, gsl_sf_result * result);
0048 double gsl_sf_hyperg_0F1(const double c, const double x);
0049 
0050 
0051 /* Confluent hypergeometric function  for integer parameters.
0052  * 1F1[m,n,x] = M(m,n,x)
0053  *
0054  * exceptions: 
0055  */
0056 int gsl_sf_hyperg_1F1_int_e(const int m, const int n, const double x, gsl_sf_result * result);
0057 double gsl_sf_hyperg_1F1_int(const int m, const int n, double x);
0058 
0059 
0060 /* Confluent hypergeometric function.
0061  * 1F1[a,b,x] = M(a,b,x)
0062  *
0063  * exceptions:
0064  */
0065 int gsl_sf_hyperg_1F1_e(const double a, const double b, const double x, gsl_sf_result * result);
0066 double gsl_sf_hyperg_1F1(double a, double b, double x);
0067 
0068 
0069 /* Confluent hypergeometric function for integer parameters.
0070  * U(m,n,x)
0071  *
0072  * exceptions:
0073  */
0074 int gsl_sf_hyperg_U_int_e(const int m, const int n, const double x, gsl_sf_result * result);
0075 double gsl_sf_hyperg_U_int(const int m, const int n, const double x);
0076 
0077 
0078 /* Confluent hypergeometric function for integer parameters.
0079  * U(m,n,x)
0080  *
0081  * exceptions:
0082  */
0083 int gsl_sf_hyperg_U_int_e10_e(const int m, const int n, const double x, gsl_sf_result_e10 * result);
0084 
0085 
0086 /* Confluent hypergeometric function.
0087  * U(a,b,x)
0088  *
0089  * exceptions:
0090  */
0091 int gsl_sf_hyperg_U_e(const double a, const double b, const double x, gsl_sf_result * result);
0092 double gsl_sf_hyperg_U(const double a, const double b, const double x);
0093 
0094 
0095 /* Confluent hypergeometric function.
0096  * U(a,b,x)
0097  *
0098  * exceptions:
0099  */
0100 int gsl_sf_hyperg_U_e10_e(const double a, const double b, const double x, gsl_sf_result_e10 * result);
0101 
0102 
0103 /* Gauss hypergeometric function 2F1[a,b,c,x]
0104  * |x| < 1
0105  *
0106  * exceptions:
0107  */
0108 int gsl_sf_hyperg_2F1_e(double a, double b, const double c, const double x, gsl_sf_result * result);
0109 double gsl_sf_hyperg_2F1(double a, double b, double c, double x);
0110 
0111 
0112 /* Gauss hypergeometric function
0113  * 2F1[aR + I aI, aR - I aI, c, x]
0114  * |x| < 1
0115  *
0116  * exceptions:
0117  */
0118 int gsl_sf_hyperg_2F1_conj_e(const double aR, const double aI, const double c, const double x, gsl_sf_result * result);
0119 double gsl_sf_hyperg_2F1_conj(double aR, double aI, double c, double x);
0120 
0121 
0122 /* Renormalized Gauss hypergeometric function
0123  * 2F1[a,b,c,x] / Gamma[c]
0124  * |x| < 1
0125  *
0126  * exceptions:
0127  */
0128 int gsl_sf_hyperg_2F1_renorm_e(const double a, const double b, const double c, const double x, gsl_sf_result * result);
0129 double gsl_sf_hyperg_2F1_renorm(double a, double b, double c, double x);
0130 
0131 
0132 /* Renormalized Gauss hypergeometric function
0133  * 2F1[aR + I aI, aR - I aI, c, x] / Gamma[c]
0134  * |x| < 1
0135  *
0136  * exceptions:
0137  */
0138 int gsl_sf_hyperg_2F1_conj_renorm_e(const double aR, const double aI, const double c, const double x, gsl_sf_result * result);
0139 double gsl_sf_hyperg_2F1_conj_renorm(double aR, double aI, double c, double x);
0140 
0141 
0142 /* Mysterious hypergeometric function. The series representation
0143  * is a divergent hypergeometric series. However, for x < 0 we
0144  * have 2F0(a,b,x) = (-1/x)^a U(a,1+a-b,-1/x)
0145  *
0146  * exceptions: GSL_EDOM
0147  */
0148 int     gsl_sf_hyperg_2F0_e(const double a, const double b, const double x, gsl_sf_result * result);
0149 double     gsl_sf_hyperg_2F0(const double a, const double b, const double x);
0150 
0151 
0152 __END_DECLS
0153 
0154 #endif /* __GSL_SF_HYPERG_H__ */