Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:00:59

0001 /* specfunc/gsl_sf_ellint.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_ELLINT_H__
0023 #define __GSL_SF_ELLINT_H__
0024 
0025 #include <gsl/gsl_mode.h>
0026 #include <gsl/gsl_sf_result.h>
0027 
0028 #undef __BEGIN_DECLS
0029 #undef __END_DECLS
0030 #ifdef __cplusplus
0031 # define __BEGIN_DECLS extern "C" {
0032 # define __END_DECLS }
0033 #else
0034 # define __BEGIN_DECLS /* empty */
0035 # define __END_DECLS /* empty */
0036 #endif
0037 
0038 __BEGIN_DECLS
0039 
0040 
0041 /* Legendre form of complete elliptic integrals
0042  *
0043  * K(k) = Integral[1/Sqrt[1 - k^2 Sin[t]^2], {t, 0, Pi/2}]
0044  * E(k) = Integral[  Sqrt[1 - k^2 Sin[t]^2], {t, 0, Pi/2}]
0045  *
0046  * exceptions: GSL_EDOM
0047  */
0048 int gsl_sf_ellint_Kcomp_e(double k, gsl_mode_t mode, gsl_sf_result * result);
0049 double gsl_sf_ellint_Kcomp(double k, gsl_mode_t mode);
0050 
0051 int gsl_sf_ellint_Ecomp_e(double k, gsl_mode_t mode, gsl_sf_result * result);
0052 double gsl_sf_ellint_Ecomp(double k, gsl_mode_t mode);
0053 
0054 int gsl_sf_ellint_Pcomp_e(double k, double n, gsl_mode_t mode, gsl_sf_result * result);
0055 double gsl_sf_ellint_Pcomp(double k, double n, gsl_mode_t mode);
0056 
0057 int gsl_sf_ellint_Dcomp_e(double k, gsl_mode_t mode, gsl_sf_result * result);
0058 double gsl_sf_ellint_Dcomp(double k, gsl_mode_t mode);
0059 
0060 
0061 /* Legendre form of incomplete elliptic integrals
0062  *
0063  * F(phi,k)   = Integral[1/Sqrt[1 - k^2 Sin[t]^2], {t, 0, phi}]
0064  * E(phi,k)   = Integral[  Sqrt[1 - k^2 Sin[t]^2], {t, 0, phi}]
0065  * P(phi,k,n) = Integral[(1 + n Sin[t]^2)^(-1)/Sqrt[1 - k^2 Sin[t]^2], {t, 0, phi}]
0066  * D(phi,k,n) = R_D(1-Sin[phi]^2, 1-k^2 Sin[phi]^2, 1.0)
0067  *
0068  * F: [Carlson, Numerische Mathematik 33 (1979) 1, (4.1)]
0069  * E: [Carlson, ", (4.2)]
0070  * P: [Carlson, ", (4.3)]
0071  * D: [Carlson, ", (4.4)]
0072  *
0073  * exceptions: GSL_EDOM
0074  */
0075 int gsl_sf_ellint_F_e(double phi, double k, gsl_mode_t mode, gsl_sf_result * result);
0076 double gsl_sf_ellint_F(double phi, double k, gsl_mode_t mode);
0077 
0078 int gsl_sf_ellint_E_e(double phi, double k, gsl_mode_t mode, gsl_sf_result * result);
0079 double gsl_sf_ellint_E(double phi, double k, gsl_mode_t mode);
0080 
0081 int gsl_sf_ellint_P_e(double phi, double k, double n, gsl_mode_t mode, gsl_sf_result * result);
0082 double gsl_sf_ellint_P(double phi, double k, double n, gsl_mode_t mode);
0083 
0084 int gsl_sf_ellint_D_e(double phi, double k, gsl_mode_t mode, gsl_sf_result * result);
0085 double gsl_sf_ellint_D(double phi, double k, gsl_mode_t mode);
0086 
0087 
0088 /* Carlson's symmetric basis of functions
0089  *
0090  * RC(x,y)   = 1/2 Integral[(t+x)^(-1/2) (t+y)^(-1)], {t,0,Inf}]
0091  * RD(x,y,z) = 3/2 Integral[(t+x)^(-1/2) (t+y)^(-1/2) (t+z)^(-3/2), {t,0,Inf}]
0092  * RF(x,y,z) = 1/2 Integral[(t+x)^(-1/2) (t+y)^(-1/2) (t+z)^(-1/2), {t,0,Inf}]
0093  * RJ(x,y,z,p) = 3/2 Integral[(t+x)^(-1/2) (t+y)^(-1/2) (t+z)^(-1/2) (t+p)^(-1), {t,0,Inf}]
0094  *
0095  * exceptions: GSL_EDOM
0096  */
0097 int gsl_sf_ellint_RC_e(double x, double y, gsl_mode_t mode, gsl_sf_result * result);
0098 double gsl_sf_ellint_RC(double x, double y, gsl_mode_t mode);
0099 
0100 int gsl_sf_ellint_RD_e(double x, double y, double z, gsl_mode_t mode, gsl_sf_result * result);
0101 double gsl_sf_ellint_RD(double x, double y, double z, gsl_mode_t mode);
0102 
0103 int gsl_sf_ellint_RF_e(double x, double y, double z, gsl_mode_t mode, gsl_sf_result * result);
0104 double gsl_sf_ellint_RF(double x, double y, double z, gsl_mode_t mode);
0105 
0106 int gsl_sf_ellint_RJ_e(double x, double y, double z, double p, gsl_mode_t mode, gsl_sf_result * result);
0107 double gsl_sf_ellint_RJ(double x, double y, double z, double p, gsl_mode_t mode);
0108 
0109 
0110 __END_DECLS
0111 
0112 #endif /* __GSL_SF_ELLINT_H__ */