Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /* specfunc/gsl_sf_psi.h
0002  * 
0003  * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 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_PSI_H__
0023 #define __GSL_SF_PSI_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 /* Poly-Gamma Functions
0041  *
0042  * psi(m,x) := (d/dx)^m psi(0,x) = (d/dx)^{m+1} log(gamma(x))
0043  */
0044 
0045 
0046 /* Di-Gamma Function  psi(n) = psi(0,n)
0047  *
0048  * n > 0
0049  * exceptions: GSL_EDOM
0050  */
0051 int     gsl_sf_psi_int_e(const int n, gsl_sf_result * result);
0052 double  gsl_sf_psi_int(const int n);
0053 
0054 
0055 /* Di-Gamma Function psi(x) = psi(0, x)
0056  *
0057  * x != 0.0, -1.0, -2.0, ...
0058  * exceptions: GSL_EDOM, GSL_ELOSS
0059  */
0060 int     gsl_sf_psi_e(const double x, gsl_sf_result * result);
0061 double  gsl_sf_psi(const double x);
0062 
0063 
0064 /* Di-Gamma Function Re[psi(1 + I y)]
0065  *
0066  * exceptions: none
0067  */
0068 int     gsl_sf_psi_1piy_e(const double y, gsl_sf_result * result);
0069 double  gsl_sf_psi_1piy(const double y);
0070 
0071 
0072 /* Di-Gamma Function psi(z) for general complex argument z = x + iy
0073  *
0074  * exceptions: GSL_EDOM
0075  */
0076 int gsl_sf_complex_psi_e(
0077   const double x,
0078   const double y,
0079   gsl_sf_result * result_re,
0080   gsl_sf_result * result_im
0081   );
0082 
0083 
0084 /* Tri-Gamma Function psi^(1)(n)
0085  *
0086  * n > 0
0087  * exceptions: GSL_EDOM
0088  */
0089 int     gsl_sf_psi_1_int_e(const int n, gsl_sf_result * result);
0090 double  gsl_sf_psi_1_int(const int n);
0091 
0092 
0093 /* Tri-Gamma Function psi^(1)(x)
0094  *
0095  * x != 0.0, -1.0, -2.0, ...
0096  * exceptions: GSL_EDOM, GSL_ELOSS
0097  */
0098 int     gsl_sf_psi_1_e(const double x, gsl_sf_result * result);
0099 double  gsl_sf_psi_1(const double x);
0100 
0101 
0102 /* Poly-Gamma Function psi^(n)(x)
0103  *
0104  * n >= 0, x > 0.0
0105  * exceptions: GSL_EDOM
0106  */
0107 int     gsl_sf_psi_n_e(const int n, const double x, gsl_sf_result * result);
0108 double  gsl_sf_psi_n(const int n, const double x);
0109 
0110 
0111 __END_DECLS
0112 
0113 #endif /* __GSL_SF_PSI_H__ */