Mercurial > forge
view main/gsl/src/buildgsl_sf.sh @ 2613:10a324ca4214 octave-forge
escape {} in help.
author | adb014 |
---|---|
date | Fri, 06 Oct 2006 23:20:34 +0000 |
parents | 15748dee9f27 |
children | dc09a0aff019 |
line wrap: on
line source
## Copyright (C) 2004 Teemu Ikonen <tpikonen@pcu.helsinki.fi> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # list of missing functions surrounded by spaces missing=" $* " cat <<EOF >gsl_sf.cc // *** DO NOT EDIT *** this file is generated by buildgsl_sf.sh EOF cat precode.cc.template >> gsl_sf.cc # double to double export octave_name=clausen export funcname=gsl_sf_clausen cat << \EOF > docstring.txt The Clausen function is defined by the following integral, Cl_2(x) = - \int_0^x dt \log(2 \sin(t/2)) It is related to the dilogarithm by Cl_2(\theta) = \Im Li_2(\exp(i \theta)). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=dawson export funcname=gsl_sf_dawson cat << \EOF > docstring.txt The Dawson integral is defined by \exp(-x^2) \int_0^x dt \exp(t^2). A table of Dawson's integral can be found in Abramowitz & Stegun, Table 7.5. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=debye_1 export funcname=gsl_sf_debye_1 cat << \EOF > docstring.txt The Debye functions are defined by the integral D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)). For further information see Abramowitz & Stegun, Section 27.1. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=debye_2 export funcname=gsl_sf_debye_2 cat << \EOF > docstring.txt The Debye functions are defined by the integral D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)). For further information see Abramowitz & Stegun, Section 27.1. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=debye_3 export funcname=gsl_sf_debye_3 cat << \EOF > docstring.txt The Debye functions are defined by the integral D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)). For further information see Abramowitz & Stegun, Section 27.1. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=debye_4 export funcname=gsl_sf_debye_4 cat << \EOF > docstring.txt The Debye functions are defined by the integral D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)). For further information see Abramowitz & Stegun, Section 27.1. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=erf_gsl export funcname=gsl_sf_erf cat << \EOF > docstring.txt These routines compute the error function erf(x) = (2/\sqrt(\pi)) \int_0^x dt \exp(-t^2). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=erfc_gsl export funcname=gsl_sf_erfc cat << \EOF > docstring.txt These routines compute the complementary error function erfc(x) = 1 - erf(x) = (2/\sqrt(\pi)) \int_x^\infty \exp(-t^2). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=log_erfc export funcname=gsl_sf_log_erfc cat << \EOF > docstring.txt These routines compute the logarithm of the complementary error function \log(\erfc(x)). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=erf_Z export funcname=gsl_sf_erf_Z cat << \EOF > docstring.txt These routines compute the Gaussian probability function Z(x) = (1/(2\pi)) \exp(-x^2/2). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=erf_Q export funcname=gsl_sf_erf_Q cat << \EOF > docstring.txt These routines compute the upper tail of the Gaussian probability function Q(x) = (1/(2\pi)) \int_x^\infty dt \exp(-t^2/2). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc if test -n "${missing##* hazard *}"; then export octave_name=hazard export funcname=gsl_sf_hazard cat << \EOF > docstring.txt The hazard function for the normal distrbution, also known as the inverse Mill's ratio, is defined as h(x) = Z(x)/Q(x) = \sqrt@{2/\pi \exp(-x^2 / 2) / \erfc(x/\sqrt 2)@}. It decreases rapidly as x approaches -\infty and asymptotes to h(x) \sim x as x approaches +\infty. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc fi export octave_name=expm1 export funcname=gsl_sf_expm1 cat << \EOF > docstring.txt These routines compute the quantity \exp(x)-1 using an algorithm that is accurate for small x. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=exprel export funcname=gsl_sf_exprel cat << \EOF > docstring.txt These routines compute the quantity (\exp(x)-1)/x using an algorithm that is accurate for small x. For small x the algorithm is based on the expansion (\exp(x)-1)/x = 1 + x/2 + x^2/(2*3) + x^3/(2*3*4) + \dots. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=exprel_2 export funcname=gsl_sf_exprel_2 cat << \EOF > docstring.txt These routines compute the quantity 2(\exp(x)-1-x)/x^2 using an algorithm that is accurate for small x. For small x the algorithm is based on the expansion 2(\exp(x)-1-x)/x^2 = 1 + x/3 + x^2/(3*4) + x^3/(3*4*5) + \dots. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=expint_E1 export funcname=gsl_sf_expint_E1 cat << \EOF > docstring.txt These routines compute the exponential integral E_1(x), E_1(x) := Re \int_1^\infty dt \exp(-xt)/t. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=expint_E2 export funcname=gsl_sf_expint_E2 cat << \EOF > docstring.txt These routines compute the second-order exponential integral E_2(x), E_2(x) := \Re \int_1^\infty dt \exp(-xt)/t^2. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=expint_Ei export funcname=gsl_sf_expint_Ei cat << \EOF > docstring.txt These routines compute the exponential integral E_i(x), Ei(x) := - PV(\int_@{-x@}^\infty dt \exp(-t)/t) where PV denotes the principal value of the integral. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=Shi export funcname=gsl_sf_Shi cat << \EOF > docstring.txt These routines compute the integral Shi(x) = \int_0^x dt \sinh(t)/t. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=Chi export funcname=gsl_sf_Chi cat << \EOF > docstring.txt These routines compute the integral Chi(x) := Re[ \gamma_E + \log(x) + \int_0^x dt (\cosh[t]-1)/t] , where \gamma_E is the Euler constant. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=expint_3 export funcname=gsl_sf_expint_3 cat << \EOF > docstring.txt These routines compute the exponential integral Ei_3(x) = \int_0^x dt \exp(-t^3) for x >= 0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=Si export funcname=gsl_sf_Si cat << \EOF > docstring.txt These routines compute the Sine integral Si(x) = \int_0^x dt \sin(t)/t. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=Ci export funcname=gsl_sf_Ci cat << \EOF > docstring.txt These routines compute the Cosine integral Ci(x) = -\int_x^\infty dt \cos(t)/t for x > 0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=atanint export funcname=gsl_sf_atanint cat << \EOF > docstring.txt These routines compute the Arctangent integral AtanInt(x) = \int_0^x dt \arctan(t)/t. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=fermi_dirac_mhalf export funcname=gsl_sf_fermi_dirac_mhalf cat << \EOF > docstring.txt These routines compute the complete Fermi-Dirac integral F_@{-1/2@}(x). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=fermi_dirac_half export funcname=gsl_sf_fermi_dirac_half cat << \EOF > docstring.txt These routines compute the complete Fermi-Dirac integral F_@{1/2@}(x). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=fermi_dirac_3half export funcname=gsl_sf_fermi_dirac_3half cat << \EOF > docstring.txt These routines compute the complete Fermi-Dirac integral F_@{3/2@}(x). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=gamma_gsl export funcname=gsl_sf_gamma cat << \EOF > docstring.txt These routines compute the Gamma function \Gamma(x), subject to x not being a negative integer. The function is computed using the real Lanczos method. The maximum value of x such that \Gamma(x) is not considered an overflow is given by the macro GSL_SF_GAMMA_XMAX and is 171.0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=lngamma_gsl export funcname=gsl_sf_lngamma cat << \EOF > docstring.txt These routines compute the logarithm of the Gamma function, \log(\Gamma(x)), subject to x not a being negative integer. For x<0 the real part of \log(\Gamma(x)) is returned, which is equivalent to \log(|\Gamma(x)|). The function is computed using the real Lanczos method. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=gammastar export funcname=gsl_sf_gammastar cat << \EOF > docstring.txt These routines compute the regulated Gamma Function \Gamma^*(x) for x > 0. The regulated gamma function is given by, \Gamma^*(x) = \Gamma(x)/(\sqrt@{2\pi@} x^@{(x-1/2)@} \exp(-x)) = (1 + (1/12x) + ...) for x \to \infty and is a useful suggestion of Temme. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=gammainv_gsl export funcname=gsl_sf_gammainv cat << \EOF > docstring.txt These routines compute the reciprocal of the gamma function, 1/\Gamma(x) using the real Lanczos method. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=lambert_W0 export funcname=gsl_sf_lambert_W0 cat << \EOF > docstring.txt These compute the principal branch of the Lambert W function, W_0(x). Lambert's W functions, W(x), are defined to be solutions of the equation W(x) \exp(W(x)) = x. This function has multiple branches for x < 0; however, it has only two real-valued branches. We define W_0(x) to be the principal branch, where W > -1 for x < 0, and W_@{-1@}(x) to be the other real branch, where W < -1 for x < 0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=lambert_Wm1 export funcname=gsl_sf_lambert_Wm1 cat << \EOF > docstring.txt These compute the secondary real-valued branch of the Lambert W function, W_@{-1@}(x). Lambert's W functions, W(x), are defined to be solutions of the equation W(x) \exp(W(x)) = x. This function has multiple branches for x < 0; however, it has only two real-valued branches. We define W_0(x) to be the principal branch, where W > -1 for x < 0, and W_@{-1@}(x) to be the other real branch, where W < -1 for x < 0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=log_1plusx export funcname=gsl_sf_log_1plusx cat << \EOF > docstring.txt These routines compute \log(1 + x) for x > -1 using an algorithm that is accurate for small x. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=log_1plusx_mx export funcname=gsl_sf_log_1plusx_mx cat << \EOF > docstring.txt These routines compute \log(1 + x) - x for x > -1 using an algorithm that is accurate for small x. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=psi export funcname=gsl_sf_psi cat << \EOF > docstring.txt These routines compute the digamma function \psi(x) for general x, x \ne 0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=psi_1piy export funcname=gsl_sf_psi_1piy cat << \EOF > docstring.txt These routines compute the real part of the digamma function on the line 1+i y, Re[\psi(1 + i y)]. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=synchrotron_1 export funcname=gsl_sf_synchrotron_1 cat << \EOF > docstring.txt These routines compute the first synchrotron function x \int_x^\infty dt K_@{5/3@}(t) for x >= 0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=synchrotron_2 export funcname=gsl_sf_synchrotron_2 cat << \EOF > docstring.txt These routines compute the second synchrotron function x K_@{2/3@}(x) for x >= 0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=transport_2 export funcname=gsl_sf_transport_2 cat << \EOF > docstring.txt These routines compute the transport function J(2,x). The transport functions J(n,x) are defined by the integral representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=transport_3 export funcname=gsl_sf_transport_3 cat << \EOF > docstring.txt These routines compute the transport function J(3,x). The transport functions J(n,x) are defined by the integral representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=transport_4 export funcname=gsl_sf_transport_4 cat << \EOF > docstring.txt These routines compute the transport function J(4,x). The transport functions J(n,x) are defined by the integral representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=transport_5 export funcname=gsl_sf_transport_5 cat << \EOF > docstring.txt These routines compute the transport function J(5,x). The transport functions J(n,x) are defined by the integral representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=sinc_gsl export funcname=gsl_sf_sinc cat << \EOF > docstring.txt These routines compute \sinc(x) = \sin(\pi x) / (\pi x) for any value of x. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=lnsinh export funcname=gsl_sf_lnsinh cat << \EOF > docstring.txt These routines compute \log(\sinh(x)) for x > 0. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=lncosh export funcname=gsl_sf_lncosh cat << \EOF > docstring.txt These routines compute \log(\cosh(x)) for any x. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=zeta export funcname=gsl_sf_zeta cat << \EOF > docstring.txt These routines compute the Riemann zeta function \zeta(s) for arbitrary s, s \ne 1. The Riemann zeta function is defined by the infinite sum \zeta(s) = \sum_@{k=1@}^\infty k^@{-s@}. EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc export octave_name=eta export funcname=gsl_sf_eta cat << \EOF > docstring.txt These routines compute the eta function \eta(s) for arbitrary s. The eta function is defined by \eta(s) = (1-2^@{1-s@}) \zeta(s). EOF ./replace_template.sh double_to_double.cc.template >> gsl_sf.cc # (int, double) to double export octave_name=bessel_Jn export funcname=gsl_sf_bessel_Jn cat << \EOF > docstring.txt These routines compute the regular cylindrical Bessel function of order n, J_n(x). EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_Yn export funcname=gsl_sf_bessel_Yn cat << \EOF > docstring.txt These routines compute the irregular cylindrical Bessel function of order n, Y_n(x), for x>0. EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_In export funcname=gsl_sf_bessel_In cat << \EOF > docstring.txt These routines compute the regular modified cylindrical Bessel function of order n, I_n(x). EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_In_scaled export funcname=gsl_sf_bessel_In_scaled cat << \EOF > docstring.txt These routines compute the scaled regular modified cylindrical Bessel function of order n, \exp(-|x|) I_n(x) EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_Kn export funcname=gsl_sf_bessel_Kn cat << \EOF > docstring.txt These routines compute the irregular modified cylindrical Bessel function of order n, K_n(x), for x > 0. EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_Kn_scaled export funcname=gsl_sf_bessel_Kn_scaled cat << \EOF > docstring.txt EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_jl export funcname=gsl_sf_bessel_jl cat << \EOF > docstring.txt These routines compute the regular spherical Bessel function of order l, j_l(x), for l >= 0 and x >= 0. EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_yl export funcname=gsl_sf_bessel_yl cat << \EOF > docstring.txt These routines compute the irregular spherical Bessel function of order l, y_l(x), for l >= 0. EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_il_scaled export funcname=gsl_sf_bessel_il_scaled cat << \EOF > docstring.txt These routines compute the scaled regular modified spherical Bessel function of order l, \exp(-|x|) i_l(x) EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_kl_scaled export funcname=gsl_sf_bessel_kl_scaled cat << \EOF > docstring.txt These routines compute the scaled irregular modified spherical Bessel function of order l, \exp(x) k_l(x), for x>0. EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=exprel_n export funcname=gsl_sf_exprel_n cat << \EOF > docstring.txt These routines compute the N-relative exponential, which is the n-th generalization of the functions gsl_sf_exprel and gsl_sf_exprel2. The N-relative exponential is given by, exprel_N(x) = N!/x^N (\exp(x) - \sum_@{k=0@}^@{N-1@} x^k/k!) = 1 + x/(N+1) + x^2/((N+1)(N+2)) + ... = 1F1 (1,1+N,x) EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=fermi_dirac_int export funcname=gsl_sf_fermi_dirac_int cat << \EOF > docstring.txt These routines compute the complete Fermi-Dirac integral with an integer index of j, F_j(x) = (1/\Gamma(j+1)) \int_0^\infty dt (t^j /(\exp(t-x)+1)). EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=taylorcoeff export funcname=gsl_sf_taylorcoeff cat << \EOF > docstring.txt These routines compute the Taylor coefficient x^n / n! for x >= 0, n >= 0. EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=legendre_Pl export funcname=gsl_sf_legendre_Pl cat << \EOF > docstring.txt These functions evaluate the Legendre polynomial P_l(x) for a specific value of l, x subject to l >= 0, |x| <= 1 EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=legendre_Ql export funcname=gsl_sf_legendre_Ql cat << \EOF > docstring.txt These routines compute the Legendre function Q_l(x) for x > -1, x != 1 and l >= 0. EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc export octave_name=psi_n export funcname=gsl_sf_psi_n cat << \EOF > docstring.txt These routines compute the polygamma function \psi^@{(m)@}(x) for m >= 0, x > 0. EOF ./replace_template.sh int_double_to_double.cc.template >> gsl_sf.cc # (double, double) to double export octave_name=bessel_Jnu export funcname=gsl_sf_bessel_Jnu cat << \EOF > docstring.txt These routines compute the regular cylindrical Bessel function of fractional order nu, J_\nu(x). EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_Ynu export funcname=gsl_sf_bessel_Ynu cat << \EOF > docstring.txt These routines compute the irregular cylindrical Bessel function of fractional order nu, Y_\nu(x). EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_Inu export funcname=gsl_sf_bessel_Inu cat << \EOF > docstring.txt These routines compute the regular modified Bessel function of fractional order nu, I_\nu(x) for x>0, \nu>0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_Inu_scaled export funcname=gsl_sf_bessel_Inu_scaled cat << \EOF > docstring.txt These routines compute the scaled regular modified Bessel function of fractional order nu, \exp(-|x|)I_\nu(x) for x>0, \nu>0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_Knu export funcname=gsl_sf_bessel_Knu cat << \EOF > docstring.txt These routines compute the irregular modified Bessel function of fractional order nu, K_\nu(x) for x>0, \nu>0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_lnKnu export funcname=gsl_sf_bessel_lnKnu cat << \EOF > docstring.txt These routines compute the logarithm of the irregular modified Bessel function of fractional order nu, \ln(K_\nu(x)) for x>0, \nu>0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_Knu_scaled export funcname=gsl_sf_bessel_Knu_scaled cat << \EOF > docstring.txt These routines compute the scaled irregular modified Bessel function of fractional order nu, \exp(+|x|) K_\nu(x) for x>0, \nu>0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=exp_mult export funcname=gsl_sf_exp_mult cat << \EOF > docstring.txt These routines exponentiate x and multiply by the factor y to return the product y \exp(x). EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=fermi_dirac_inc_0 export funcname=gsl_sf_fermi_dirac_inc_0 cat << \EOF > docstring.txt These routines compute the incomplete Fermi-Dirac integral with an index of zero, F_0(x,b) = \ln(1 + e^@{b-x@}) - (b-x). EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=poch export funcname=gsl_sf_poch cat << \EOF > docstring.txt These routines compute the Pochhammer symbol (a)_x := \Gamma(a + x)/\Gamma(a), subject to a and a+x not being negative integers. The Pochhammer symbol is also known as the Apell symbol. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=lnpoch export funcname=gsl_sf_lnpoch cat << \EOF > docstring.txt These routines compute the logarithm of the Pochhammer symbol, \log((a)_x) = \log(\Gamma(a + x)/\Gamma(a)) for a > 0, a+x > 0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=pochrel export funcname=gsl_sf_pochrel cat << \EOF > docstring.txt These routines compute the relative Pochhammer symbol ((a,x) - 1)/x where (a,x) = (a)_x := \Gamma(a + x)/\Gamma(a). EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=gamma_inc_Q export funcname=gsl_sf_gamma_inc_Q cat << \EOF > docstring.txt These routines compute the normalized incomplete Gamma Function Q(a,x) = 1/\Gamma(a) \int_x\infty dt t^@{a-1@} \exp(-t) for a > 0, x >= 0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=gamma_inc_P export funcname=gsl_sf_gamma_inc_P cat << \EOF > docstring.txt These routines compute the complementary normalized incomplete Gamma Function P(a,x) = 1/\Gamma(a) \int_0^x dt t^@{a-1@} \exp(-t) for a > 0, x >= 0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc if test -n "${missing##* gamma_inc *@}"; then export octave_name=gamma_inc export funcname=gsl_sf_gamma_inc cat << \EOF > docstring.txt These functions compute the incomplete Gamma Function the normalization factor included in the previously defined functions: \Gamma(a,x) = \int_x\infty dt t^@{a-1@} \exp(-t) for a real and x >= 0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc fi export octave_name=beta_gsl export funcname=gsl_sf_beta cat << \EOF > docstring.txt These routines compute the Beta Function, B(a,b) = \Gamma(a)\Gamma(b)/\Gamma(a+b) for a > 0, b > 0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=lnbeta export funcname=gsl_sf_lnbeta cat << \EOF > docstring.txt These routines compute the logarithm of the Beta Function, \log(B(a,b)) for a > 0, b > 0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=hyperg_0F1 export funcname=gsl_sf_hyperg_0F1 cat << \EOF > docstring.txt These routines compute the hypergeometric function 0F1(c,x). EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=conicalP_half export funcname=gsl_sf_conicalP_half cat << \EOF > docstring.txt These routines compute the irregular Spherical Conical Function P^@{1/2@}_@{-1/2 + i \lambda@}(x) for x > -1. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=conicalP_mhalf export funcname=gsl_sf_conicalP_mhalf cat << \EOF > docstring.txt These routines compute the regular Spherical Conical Function P^@{-1/2@}_@{-1/2 + i \lambda@}(x) for x > -1. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=conicalP_0 export funcname=gsl_sf_conicalP_0 cat << \EOF > docstring.txt These routines compute the conical function P^0_@{-1/2 + i \lambda@}(x) for x > -1. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=conicalP_1 export funcname=gsl_sf_conicalP_1 cat << \EOF > docstring.txt These routines compute the conical function P^1_@{-1/2 + i \lambda@}(x) for x > -1. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc export octave_name=hzeta export funcname=gsl_sf_hzeta cat << \EOF > docstring.txt These routines compute the Hurwitz zeta function \zeta(s,q) for s > 1, q > 0. EOF ./replace_template.sh double_double_to_double.cc.template >> gsl_sf.cc # (double, mode) to double export octave_name=airy_Ai export funcname=gsl_sf_airy_Ai cat << \EOF > docstring.txt These routines compute the Airy function Ai(x) with an accuracy specified by mode. EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=airy_Bi export funcname=gsl_sf_airy_Bi cat << \EOF > docstring.txt These routines compute the Airy function Bi(x) with an accuracy specified by mode. EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=airy_Ai_scaled export funcname=gsl_sf_airy_Ai_scaled cat << \EOF > docstring.txt These routines compute a scaled version of the Airy function S_A(x) Ai(x). For x>0 the scaling factor S_A(x) is \exp(+(2/3) x^(3/2)), and is 1 for x<0. EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=airy_Bi_scaled export funcname=gsl_sf_airy_Bi_scaled cat << \EOF > docstring.txt These routines compute a scaled version of the Airy function S_B(x) Bi(x). For x>0 the scaling factor S_B(x) is exp(-(2/3) x^(3/2)), and is 1 for x<0. EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=airy_Ai_deriv export funcname=gsl_sf_airy_Ai_deriv cat << \EOF > docstring.txt These routines compute the Airy function derivative Ai'(x) with an accuracy specified by mode. EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=airy_Bi_deriv export funcname=gsl_sf_airy_Bi_deriv cat << \EOF > docstring.txt These routines compute the Airy function derivative Bi'(x) with an accuracy specified by mode. EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=airy_Ai_deriv_scaled export funcname=gsl_sf_airy_Ai_deriv_scaled cat << \EOF > docstring.txt These routines compute the derivative of the scaled Airy function S_A(x) Ai(x). EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=airy_Bi_deriv_scaled export funcname=gsl_sf_airy_Bi_deriv_scaled cat << \EOF > docstring.txt These routines compute the derivative of the scaled Airy function S_B(x) Bi(x). EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=ellint_Kcomp export funcname=gsl_sf_ellint_Kcomp cat << \EOF > docstring.txt These routines compute the complete elliptic integral K(k) to the accuracy specified by the mode variable mode. EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc export octave_name=ellint_Ecomp export funcname=gsl_sf_ellint_Ecomp cat << \EOF > docstring.txt These routines compute the complete elliptic integral E(k) to the accuracy specified by the mode variable mode. EOF ./replace_template.sh double_mode_to_double.cc.template >> gsl_sf.cc # int to double export octave_name=airy_zero_Ai export funcname=gsl_sf_airy_zero_Ai cat << \EOF > docstring.txt These routines compute the location of the s-th zero of the Airy function Ai(x). EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc export octave_name=airy_zero_Bi export funcname=gsl_sf_airy_zero_Bi cat << \EOF > docstring.txt These routines compute the location of the s-th zero of the Airy function Bi(x). EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc export octave_name=airy_zero_Ai_deriv export funcname=gsl_sf_airy_zero_Ai_deriv cat << \EOF > docstring.txt These routines compute the location of the s-th zero of the Airy function derivative Ai'(x). EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc export octave_name=airy_zero_Bi_deriv export funcname=gsl_sf_airy_zero_Bi_deriv cat << \EOF > docstring.txt These routines compute the location of the s-th zero of the Airy function derivative Bi'(x). EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_zero_J0 export funcname=gsl_sf_bessel_zero_J0 cat << \EOF > docstring.txt These routines compute the location of the s-th positive zero of the Bessel function J_0(x). EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc export octave_name=bessel_zero_J1 export funcname=gsl_sf_bessel_zero_J1 cat << \EOF > docstring.txt These routines compute the location of the s-th positive zero of the Bessel function J_1(x). EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc export octave_name=psi_1_int export funcname=gsl_sf_psi_1_int cat << \EOF > docstring.txt These routines compute the Trigamma function \psi'(n) for positive integer n. EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc export octave_name=zeta_int export funcname=gsl_sf_zeta_int cat << \EOF > docstring.txt These routines compute the Riemann zeta function \zeta(n) for integer n, n \ne 1. EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc export octave_name=eta_int export funcname=gsl_sf_eta_int cat << \EOF > docstring.txt These routines compute the eta function \eta(n) for integer n. EOF ./replace_template.sh int_to_double.cc.template >> gsl_sf.cc # (int, int, double) to double export octave_name=legendre_Plm export funcname=gsl_sf_legendre_Plm cat << \EOF > docstring.txt These routines compute the associated Legendre polynomial P_l^m(x) for m >= 0, l >= m, |x| <= 1. EOF ./replace_template.sh int_int_double_to_double.cc.template >> gsl_sf.cc export octave_name=legendre_sphPlm export funcname=gsl_sf_legendre_sphPlm cat << \EOF > docstring.txt These routines compute the normalized associated Legendre polynomial $\sqrt@{(2l+1)/(4\pi)@} \sqrt@{(l-m)!/(l+m)!@} P_l^m(x)$ suitable for use in spherical harmonics. The parameters must satisfy m >= 0, l >= m, |x| <= 1. Theses routines avoid the overflows that occur for the standard normalization of P_l^m(x). EOF ./replace_template.sh int_int_double_to_double.cc.template >> gsl_sf.cc