
Math::GSL::SF - Special Functions

use Math::GSL::SF qw /:all/;

This module contains a data structure named gsl_sf_result. To create a new one use
$r = Math::GSL::SF::gsl_sf_result_struct->new;
You can then access the elements of the structure in this way :
my $val = $r->{val};
my $error = $r->{err};
Here is a list of all included functions:
gsl_sf_airy_Ai_e($x, $mode)
gsl_sf_airy_Ai($x, $mode, $result)- These routines compute the Airy function Ai($x) with an accuracy specified by $mode. $mode should be $GSL_PREC_DOUBLE, $GSL_PREC_SINGLE or $GSL_PREC_APPROX. $result is a gsl_sf_result structure.
gsl_sf_airy_Bi_e($x, $mode, $result)
gsl_sf_airy_Bi($x, $mode)- These routines compute the Airy function Bi($x) with an accuracy specified by $mode. $mode should be $GSL_PREC_DOUBLE, $GSL_PREC_SINGLE or $GSL_PREC_APPROX. $result is a gsl_sf_result structure.
gsl_sf_airy_Ai_scaled_e($x, $mode, $result)
gsl_sf_airy_Ai_scaled($x, $mode)- 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. $result is a gsl_sf_result structure.
gsl_sf_airy_Bi_scaled_e($x, $mode, $result)
gsl_sf_airy_Bi_scaled($x, $mode)- 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. $result is a gsl_sf_result structure.
gsl_sf_airy_Ai_deriv_e($x, $mode, $result)
gsl_sf_airy_Ai_deriv($x, $mode)- These routines compute the Airy function derivative Ai'($x) with an accuracy specified by $mode. $result is a gsl_sf_result structure.
gsl_sf_airy_Bi_deriv_e($x, $mode, $result)
gsl_sf_airy_Bi_deriv($x, $mode)-These routines compute the Airy function derivative Bi'($x) with an accuracy specified by $mode. $result is a gsl_sf_result structure.
gsl_sf_airy_Ai_deriv_scaled_e($x, $mode, $result)
gsl_sf_airy_Ai_deriv_scaled($x, $mode)-These routines compute the scaled Airy function derivative 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. $result is a gsl_sf_result structure.
gsl_sf_airy_Bi_deriv_scaled_e($x, $mode, $result)
gsl_sf_airy_Bi_deriv_scaled($x, $mode)-These routines compute the scaled Airy function derivative 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. $result is a gsl_sf_result structure.
gsl_sf_airy_zero_Ai_e($s, $result)
gsl_sf_airy_zero_Ai($s)-These routines compute the location of the s-th zero of the Airy function Ai($x). $result is a gsl_sf_result structure.
gsl_sf_airy_zero_Bi_e($s, $result)
gsl_sf_airy_zero_Bi($s)-These routines compute the location of the s-th zero of the Airy function Bi($x). $result is a gsl_sf_result structure.
gsl_sf_airy_zero_Ai_deriv_e($s, $result)
gsl_sf_airy_zero_Ai_deriv($s)-These routines compute the location of the s-th zero of the Airy function derivative Ai'(x). $result is a gsl_sf_result structure.
gsl_sf_airy_zero_Bi_deriv_e($s, $result)
gsl_sf_airy_zero_Bi_deriv($s)- These routines compute the location of the s-th zero of the Airy function derivative Bi'(x). $result is a gsl_sf_result structure.
gsl_sf_bessel_J0_e($x, $result)
gsl_sf_bessel_J0($x)-These routines compute the regular cylindrical Bessel function of zeroth order, J_0($x). $result is a gsl_sf_result structure.
gsl_sf_bessel_J1_e($x, $result)
gsl_sf_bessel_J1($x)- These routines compute the regular cylindrical Bessel function of first order, J_1($x). $result is a gsl_sf_result structure.
gsl_sf_bessel_Jn_e($n, $x, $result)
gsl_sf_bessel_Jn($n, $x)-These routines compute the regular cylindrical Bessel function of order n, J_n($x).
gsl_sf_bessel_Y0_e($x, $result)
gsl_sf_bessel_Y0($x)- These routines compute the irregular spherical Bessel function of zeroth order, y_0(x) = -\cos(x)/x.
gsl_sf_bessel_Y1_e($x, $result)
gsl_sf_bessel_Y1($x)-These routines compute the irregular spherical Bessel function of first order, y_1(x) = -(\cos(x)/x + \sin(x))/x.
gsl_sf_bessel_Yn_e($n, $x, $result)
gsl_sf_bessel_Yn($n, $x)-These routines compute the irregular cylindrical Bessel function of order $n, Y_n(x), for x>0.
gsl_sf_bessel_I0_e($x, $result)
gsl_sf_bessel_I0($x)-These routines compute the regular modified cylindrical Bessel function of zeroth order, I_0(x).
gsl_sf_bessel_I1_e($x, $result)
gsl_sf_bessel_I1($x)-These routines compute the regular modified cylindrical Bessel function of first order, I_1(x).
gsl_sf_bessel_In_e($n, $x, $result)
gsl_sf_bessel_In($n, $x)-These routines compute the regular modified cylindrical Bessel function of order $n, I_n(x).
gsl_sf_bessel_I0_scaled_e($x, $result)
gsl_sf_bessel_I0_scaled($x)-These routines compute the scaled regular modified cylindrical Bessel function of zeroth order \exp(-|x|) I_0(x).
gsl_sf_bessel_I1_scaled_e($x, $result)
gsl_sf_bessel_I1_scaled($x)-These routines compute the scaled regular modified cylindrical Bessel function of first order \exp(-|x|) I_1(x).
gsl_sf_bessel_In_scaled_e($n, $x, $result)
gsl_sf_bessel_In_scaled($n, $x)-These routines compute the scaled regular modified cylindrical Bessel function of order $n, \exp(-|x|) I_n(x)
gsl_sf_bessel_K0_e($x, $result)
gsl_sf_bessel_K0($x)-These routines compute the irregular modified cylindrical Bessel function of zeroth order, K_0(x), for x > 0.
gsl_sf_bessel_K1_e($x, $result)
gsl_sf_bessel_K1($x)-These routines compute the irregular modified cylindrical Bessel function of first order, K_1(x), for x > 0.
gsl_sf_bessel_Kn_e($n, $x, $result)
gsl_sf_bessel_Kn($n, $x)-These routines compute the irregular modified cylindrical Bessel function of order $n, K_n(x), for x > 0.
gsl_sf_bessel_K0_scaled_e($x, $result)
gsl_sf_bessel_K0_scaled($x)-These routines compute the scaled irregular modified cylindrical Bessel function of zeroth order \exp(x) K_0(x) for x>0.
gsl_sf_coulomb_wave_FG_e($eta, $x, $L_F, $k, $F, gsl_sf_result * Fp, gsl_sf_result * G, $Gp) - This function computes the Coulomb wave functions F_L(\eta,x), G_{L-k}(\eta,x) and their derivatives F'_L(\eta,x), G'_{L-k}(\eta,x) with respect to $x. The parameters are restricted to L, L-k > -1/2, x > 0 and integer $k. Note that L itself is not restricted to being an integer. The results are stored in the parameters $F, $G for the function values and $Fp, $Gp for the derivative values. $F, $G, $Fp, $Gp are all gsl_result structs. If an overflow occurs, $GSL_EOVRFLW is returned and scaling exponents are returned as second and third values.
gsl_sf_coulomb_wave_F_array -
gsl_sf_coulomb_wave_FG_array -
gsl_sf_coulomb_wave_FGp_array -
gsl_sf_coulomb_wave_sphF_array -
gsl_sf_coulomb_CL_e($L, $eta, $result) - This function computes the Coulomb wave function normalization constant C_L($eta) for $L > -1.
gsl_sf_coulomb_CL_arrayi -gsl_sf_coupling_3j_e($two_ja, $two_jb, $two_jc, $two_ma, $two_mb, $two_mc, $result)
gsl_sf_coupling_3j($two_ja, $two_jb, $two_jc, $two_ma, $two_mb, $two_mc)- These routines compute the Wigner 3-j coefficient, (ja jb jc ma mb mc) where the arguments are given in half-integer units, ja = $two_ja/2, ma = $two_ma/2, etc.
gsl_sf_coupling_6j_e($two_ja, $two_jb, $two_jc, $two_jd, $two_je, $two_jf, $result)
gsl_sf_coupling_6j($two_ja, $two_jb, $two_jc, $two_jd, $two_je, $two_jf)- These routines compute the Wigner 6-j coefficient, {ja jb jc jd je jf} where the arguments are given in half-integer units, ja = $two_ja/2, ma = $two_ma/2, etc.
gsl_sf_coupling_9j_e($two_ja, $two_jb, $two_jc, $two_jd, $two_je, $two_jf, $two_jg, $two_jh, $two_ji, $result)
gsl_sf_coupling_9j($two_ja, $two_jb, $two_jc, $two_jd, $two_je, $two_jf, $two_jg, $two_jh, $two_ji)-These routines compute the Wigner 9-j coefficient,
{ja jb jc
jd je jf
jg jh ji}
where the arguments are given in half-integer units, ja = two_ja/2, ma = two_ma/2, etc.
gsl_sf_dawson_e($x, $result)
gsl_sf_dawson($x)-These routines compute the value of Dawson's integral for $x.
gsl_sf_debye_1_e($x, $result)
gsl_sf_debye_1($x)-These routines compute the first-order Debye function D_1(x) = (1/x) \int_0^x dt (t/(e^t - 1)).
gsl_sf_debye_2_e($x, $result)
gsl_sf_debye_2($x)-These routines compute the second-order Debye function D_2(x) = (2/x^2) \int_0^x dt (t^2/(e^t - 1)).
gsl_sf_debye_3_e($x, $result)
gsl_sf_debye_3($x)-These routines compute the third-order Debye function D_3(x) = (3/x^3) \int_0^x dt (t^3/(e^t - 1)).
gsl_sf_debye_4_e($x, $result)
gsl_sf_debye_4($x)-These routines compute the fourth-order Debye function D_4(x) = (4/x^4) \int_0^x dt (t^4/(e^t - 1)).
gsl_sf_debye_5_e($x, $result)
gsl_sf_debye_5($x)-These routines compute the fifth-order Debye function D_5(x) = (5/x^5) \int_0^x dt (t^5/(e^t - 1)).
gsl_sf_debye_6_e($x, $result)
gsl_sf_debye_6($x)-These routines compute the sixth-order Debye function D_6(x) = (6/x^6) \int_0^x dt (t^6/(e^t - 1)).
gsl_sf_dilog_e ($x, $result)
gsl_sf_dilog($x)- These routines compute the dilogarithm for a real argument. In Lewin's notation this is Li_2(x), the real part of the dilogarithm of a real x. It is defined by the integral representation Li_2(x) = - \Re \int_0^x ds \log(1-s) / s. Note that \Im(Li_2(x)) = 0 for x <= 1, and -\pi\log(x) for x > 1. Note that Abramowitz & Stegun refer to the Spence integral S(x)=Li_2(1-x) as the dilogarithm rather than Li_2(x).
gsl_sf_complex_dilog_xy_e -
gsl_sf_complex_dilog_e($r, $theta, $result_re, $result_im) - This function computes the full complex-valued dilogarithm for the complex argument z = r \exp(i \theta). The real and imaginary parts of the result are returned in the $result_re and $result_im gsl_result structs.
gsl_sf_complex_spence_xy_e -gsl_sf_multiply
gsl_sf_multiply_e($x, $y, $result) - This function multiplies $x and $y storing the product and its associated error in $result.
gsl_sf_multiply_err_e($x, $dx, $y, $dy, $result) - This function multiplies $x and $y with associated absolute errors $dx and $dy. The product xy +/- xy \sqrt((dx/x)^2 +(dy/y)^2) is stored in $result.-
gsl_sf_ellint_Kcomp_e($k, $mode, $result)
gsl_sf_ellint_Kcomp($k, $mode)-These routines compute the complete elliptic integral K($k) to the accuracy specified by the mode variable mode. Note that Abramowitz & Stegun define this function in terms of the parameter m = k^2.
gsl_sf_elljac_e($u, $m) - This function computes the Jacobian elliptic functions sn(u|m), cn(u|m), dn(u|m) by descending Landen transformations. The function returns 0 if the operation succeded, 1 otherwise and then returns the result of sn, cn and dn in this order.
gsl_sf_erfc_e
gsl_sf_erfc-
gsl_sf_exp_err_e -
gsl_sf_exp_err_e10_e -
gsl_sf_exp_mult_err_e -
gsl_sf_exp_mult_err_e10_e -
gsl_sf_expint_E1_e
gsl_sf_expint_E1-
gsl_sf_legendre_P1_e
gsl_sf_legendre_P2_e
gsl_sf_legendre_P3_e
gsl_sf_legendre_P1
gsl_sf_legendre_P2
gsl_sf_legendre_P3-
gsl_sf_lngamma_sgn_e
gsl_sf_gamma_e
gsl_sf_gamma
gsl_sf_gammastar_e
gsl_sf_gammastar
gsl_sf_gammainv_e
gsl_sf_gammainv
gsl_sf_lngamma_complex_e
gsl_sf_gamma_inc_Q_e
gsl_sf_gamma_inc_Q
gsl_sf_gamma_inc_P_e
gsl_sf_gamma_inc_P
gsl_sf_gamma_inc_e
gsl_sf_gamma_inc
gsl_sf_taylorcoeff_e
gsl_sf_taylorcoeff
gsl_sf_fact_e
gsl_sf_fact
gsl_sf_doublefact_e
gsl_sf_doublefact
gsl_sf_lnfact_e
gsl_sf_lnfact
gsl_sf_lndoublefact_e
gsl_sf_lndoublefact
gsl_sf_lnchoose_e
gsl_sf_lnchoose
gsl_sf_choose_e
gsl_sf_choose
gsl_sf_lnpoch_e
gsl_sf_lnpoch
gsl_sf_lnpoch_sgn_e
gsl_sf_poch_e
gsl_sf_poch
gsl_sf_pochrel_e
gsl_sf_pochrel
gsl_sf_lnbeta_e
gsl_sf_lnbeta
gsl_sf_lnbeta_sgn_e
gsl_sf_beta_e
gsl_sf_beta
gsl_sf_beta_inc_e
gsl_sf_beta_inc
gsl_sf_gegenpoly_1_e
gsl_sf_gegenpoly_2_e
gsl_sf_gegenpoly_3_e
gsl_sf_gegenpoly_1
gsl_sf_gegenpoly_2
gsl_sf_gegenpoly_3
gsl_sf_gegenpoly_n_e
gsl_sf_gegenpoly_n
gsl_sf_gegenpoly_array
gsl_sf_hyperg_0F1_e
gsl_sf_hyperg_0F1
gsl_sf_hyperg_1F1_int_e
gsl_sf_hyperg_1F1_int
gsl_sf_hyperg_1F1_e
gsl_sf_hyperg_1F1
gsl_sf_hyperg_U_int_e
gsl_sf_hyperg_U_int
gsl_sf_hyperg_U_int_e10_e
gsl_sf_hyperg_U_e
gsl_sf_hyperg_U
gsl_sf_hyperg_U_e10_e
gsl_sf_hyperg_2F1_e
gsl_sf_hyperg_2F1
gsl_sf_hyperg_2F1_conj_e
gsl_sf_hyperg_2F1_conj
gsl_sf_hyperg_2F1_renorm_e
gsl_sf_hyperg_2F1_renorm
gsl_sf_hyperg_2F1_conj_renorm_e
gsl_sf_hyperg_2F1_conj_renorm
gsl_sf_hyperg_2F0_e
gsl_sf_hyperg_2F0
gsl_sf_laguerre_1_e
gsl_sf_laguerre_2_e
gsl_sf_laguerre_3_e
gsl_sf_laguerre_1
gsl_sf_laguerre_2
gsl_sf_laguerre_3
gsl_sf_laguerre_n_e
gsl_sf_laguerre_n
gsl_sf_lambert_W0_e
gsl_sf_lambert_W0
gsl_sf_lambert_Wm1_e
gsl_sf_lambert_Wm1
gsl_sf_conicalP_half_e
gsl_sf_conicalP_half
gsl_sf_conicalP_mhalf_e
gsl_sf_conicalP_mhalf
gsl_sf_conicalP_0_e
gsl_sf_conicalP_0
gsl_sf_conicalP_1_e
gsl_sf_conicalP_1
gsl_sf_conicalP_sph_reg_e
gsl_sf_conicalP_sph_reg
gsl_sf_conicalP_cyl_reg_e
gsl_sf_conicalP_cyl_reg
gsl_sf_legendre_H3d_0_e
gsl_sf_legendre_H3d_0
gsl_sf_legendre_H3d_1_e
gsl_sf_legendre_H3d_1
gsl_sf_legendre_H3d_e
gsl_sf_legendre_H3d
gsl_sf_legendre_H3d_array
gsl_sf_log_e
gsl_sf_log
gsl_sf_log_abs_e
gsl_sf_log_abs
gsl_sf_complex_log_e
gsl_sf_log_1plusx_e
gsl_sf_log_1plusx
gsl_sf_log_1plusx_mx_e
gsl_sf_log_1plusx_mx
gsl_sf_mathieu_a_array
gsl_sf_mathieu_b_array
gsl_sf_mathieu_a
gsl_sf_mathieu_b
gsl_sf_mathieu_a_coeff
gsl_sf_mathieu_b_coeff
gsl_sf_mathieu_alloc
gsl_sf_mathieu_free
gsl_sf_mathieu_ce
gsl_sf_mathieu_se
gsl_sf_mathieu_ce_array
gsl_sf_mathieu_se_array
gsl_sf_mathieu_Mc