SPECIAL_FUNCTIONS
Evaluation of Special Functions
SPECIAL_FUNCTIONS
is a FORTRAN77 library which
computes the value of various special functions,
by Shanjie Zhang, Jianming Jin.
The library includes functions for the Beta, Error, Gamma, Lambda, Psi functions,
for the Airy, Bessel I, J, K and Y, Hankel, Jacobian elliptic, Kelvin, Mathieu,
Struve functions,
for spheroidal angular functions, parabolic cylinder functions,
hypergeometric functions,
for the Bernoulli and Euler numbers,
for the Hermite, Laguerre and Legendre polynomials,
for the cosine, elliptic, exponential, Fresnel and sine integrals.
Jianming Jin makes the text of the original FORTRAN77 source code available at
http://in.ece.illinois.edu/routines/routines.html.
The FORTRAN77 source code of this library is copyrighted by
Shanjie Zhang and Jianming Jin. However, they give permission to
incorporate routines from this library into a user program
provided that the copyright is acknowledged.
Languages:
SPECIAL_FUNCTIONS is available in
a FORTRAN77 version and
a FORTRAN90 version.
Related Data and Programs:
CORDIC,
a FORTRAN77 library which
uses the CORDIC method to compute certain elementary functions.
FN,
a FORTRAN77 library which
evaluates elementary and special functions,
by Wayne Fullerton.
POLPAK,
a FORTRAN77 library which
evaluates certain mathematical functions, especially some
recursive polynomial families.
SLATEC,
a FORTRAN90 library which
evaluates many special functions.
SPECFUN,
a FORTRAN77 library which
computes special functions, including Bessel I, J, K and Y functions,
and the Dawson, E1, EI, Erf, Gamma, Psi/Digamma functions,
by William Cody and Laura Stoltz;
TEST_VALUES,
a FORTRAN77 library which
contains a few test values of many functions.
TOMS644,
a FORTRAN77 library which
evaluates the Bessel I, J, K, Y functions, the Airy functions Ai and Bi,
and the Hankel function, for complex argument and real order.
TOMS715,
a FORTRAN77 library which
evaluates special functions, including the Bessel I, J, K, and Y functions
of order 0, of order 1, and of any real order, Dawson's integral,
the error function, exponential integrals, the gamma function,
the normal distribution function, the psi function.
This is a version of ACM TOMS algorithm 715.
Reference:

Shanjie Zhang, Jianming Jin,
Computation of Special Functions,
Wiley, 1996,
ISBN: 0471119636,
LC: QA351.C45.
Source Code:
Examples and Tests:
List of Routines:

AIRYA computes Airy functions and their derivatives.

AIRYB computes Airy functions and their derivatives.

AIRYZO computes the first NT zeros of Ai(x) and Ai'(x).

AJYIK computes Bessel functions Jv(x), Yv(x), Iv(x), Kv(x).

ASWFA computes prolate and oblate spheroidal angular functions of the first kind.

ASWFB: prolate and oblate spheroidal angular functions of the first kind.

BERNOA computes the Bernoulli number Bn.

BERNOB computes the Bernoulli number Bn.

BETA computes the Beta function B(p,q).

BJNDD computes Bessel functions Jn(x) and first and second derivatives.

CBK computes coefficients for oblate radial functions with small argument.

CCHG computes the confluent hypergeometric function.

CERF computes the error function and derivative for a complex argument.

CERROR computes the error function for a complex argument.

CERZO evaluates the complex zeros of the error function.

CFC computes the complex Fresnel integral C(z) and C'(z).

CFS computes the complex Fresnel integral S(z) and S'(z).

CGAMA computes the Gamma function for complex argument.

CH12N computes Hankel functions of first and second kinds, complex argument.

CHGM computes the confluent hypergeometric function M(a,b,x).

CHGU computes the confluent hypergeometric function U(a,b,x).

CHGUBI computes the confluent hypergeometric function with integer argument B.

CHGUIT computes the hypergeometric function using GaussLegendre integration.

CHGUL computes the confluent hypergeometric function for large argument X.

CHGUS computes the confluent hypergeometric function for small argument X.

CIK01: modified Bessel I0(z), I1(z), K0(z) and K1(z) for complex argument.

CIKLV: modified Bessel functions Iv(z) and Kv(z), complex argument, large order.

CIKNA: modified Bessel functions In(z) and Kn(z), and derivatives, for complex argument.

CIKNB computes modified Bessel functions In(z) and Kn(z) for complex argument.

CIKVA computes modified Bessel functions Iv(z), Kv(z), for arbitrary order, complex argument.

CIKVB: modified Bessel functions, derivatives, Iv(z), Kv(z), arbitrary order, complex argument.

CISIA computes cosine and sine integrals.

CISIB computes cosine and sine integrals.

CJK computes asymptotic expansion coefficients for Bessel functions of large order.

CJY01 computes Bessel functions and derivatives, J0(z), J1(z), Y0(z), Y1(z).

CJYLV computes Bessel functions Jv(z), Yv(z) of complex argument and large order v.

CJYNA computes Bessel functions and derivatives, Jn(z) and Yn(z) of complex argument.

CJYNB computes Bessel functions and derivatives, Jn(z) and Yn(z) of complex argument.

CJYVA computes Bessel functions and derivatives, Jv(z) and Yv(z) of complex argument.

CJYVB computes Bessel functions and derivatives, Jv(z) and Yv(z) of complex argument.

CLPMN computes associated Legendre functions and derivatives for complex argument.

CLPN computes Legendre functions and derivatives for complex argument.

CLQMN computes associated Legendre functions and derivatives for complex argument.

CLQN computes the Legendre function Qn(z) and derivative for complex argument.

COMELP computes complete elliptic integrals K(k) and E(k).

CPBDN computes the parabolic cylinder function Dn(z) for complex argument.

CPDLA computes complex parabolic cylinder function Dn(z) for large argument.

CPDSA computes complex parabolic cylinder function Dn(z) for small argument.

CPSI computes the psi function for a complex argument.

CSPHIK computes modified spherical Bessel functions for complex argument.

CSPHJY computes spherical Bessel functions jn(z) and yn(z) for complex argument.

CV0 computes the initial characteristic value of Mathieu functions.

CVA1 computes a sequence of characteristic values of Mathieu functions.

CVA2 computes a specific characteristic value of Mathieu functions.

CVF computes the value of F for the characteristic equation of Mathieu functions.

CVQL computes the characteristic value of Mathieu functions.

CVQM computes the characteristic value of Mathieu functions.

CY01 computes complex Bessel functions Y0(z) and Y1(z) and derivatives.

CYZO computes zeros of complex Bessel functions Y0(z) and Y1(z) and Y1'(z).

DVLA computes parabolic cylinder functions Dv(x) for large argument.

DVSA computes parabolic cylinder functions Dv(x) for small argument.

E1XA computes the exponential integral E1(x).

E1XB computes the exponential integral E1(x).

E1Z computes the complex exponential integral E1(z).

EIX computes the exponential integral Ei(x).

ELIT computes complete and incomplete elliptic integrals F(k,phi) and E(k,phi).

ELIT3 computes the elliptic integral of the third kind.

ENVJ is a utility function used by MSTA1 and MSTA2.

ENXA computes the exponential integral En(x).

ENXB computes the exponential integral En(x).

EULERA computes the Euler number En.

EULERB computes the Euler number En.

FCOEF computes Mathieu function expansion coefficients.

FCS computes Fresnel integrals C(x) and S(x).

FCSZO computes complex zeros of Fresnel integrals C(x) and S(x).

FFK computes modified Fresnel integrals F+/(x) and K+/(x).

GAIH computes the GammaH function.

GAM0 computes the Gamma function for the LAMV function.

GAMMA computes the Gamma function.

GMN computes quantities needed for oblate radial functions with small argument.

HERZO computes the zeros the Hermite polynomial Hn(x).

HYGFX computes the hypergeometric function F(a,b,c,x).

HYGFZ computes the hypergeometric function F(a,b,c,x) for complex argument.

IK01A compute Bessel function I0(x), I1(x), K0(x), and K1(x).

IK01B compute Bessel function I0(x), I1(x), K0(x), and K1(x).

IKNA compute Bessel function In(x) and Kn(x).

IKNB compute Bessel function In(x) and Kn(x).

IKV compute modified Bessel function Iv(x) and Kv(x) and their derivatives.

INCOB computes the incomplete beta function Ix(a,b).

INCOG computes the incomplete beta function Ix(a,b).

ITAIRY computes the integrals of Airy functions.

ITIKA computes the integral of the modified Bessel functions I0(t) and K0(t).

ITIKB computes the integral of the Bessel functions I0(t) and K0(t).

ITJYA computes integrals of Bessel functions J0(t) and Y0(t).

ITJYB computes integrals of Bessel functions J0(t) and Y0(t).

ITSH0 integrates the Struve function H0(t) from 0 to x.

ITSL0 integrates the Struve function L0(t) from 0 to x.

ITTH0 integrates H0(t)/t from x to oo.

ITTIKA integrates (I0(t)1)/t from 0 to x, K0(t)/t from x to 1.

ITTIKB integrates (I0(t)1)/t from 0 to x, K0(t)/t from x to 1.

ITTJYA integrates (1J0(t))/t from 0 to x, and Y0(t)/t from x to 1.

ITTJYB integrates (1J0(t))/t from 0 to x, and Y0(t)/t from x to 1.

JDZO computes the zeros of Bessel functions Jn(x) and Jn'(x).

JELP computes Jacobian elliptic functions SN(u), CN(u), DN(u).

JY01A computes Bessel functions J0(x), J1(x), Y0(x), Y1(x) and derivatives.

JY01B computes Bessel functions J0(x), J1(x), Y0(x), Y1(x) and derivatives.

JYNA computes Bessel functions Jn(x) and Yn(x) and derivatives.

JYNB computes Bessel functions Jn(x) and Yn(x) and derivatives.

JYNDD computes Bessel functions Jn(x) and Yn(x), first and second derivatives.

JYV computes Bessel functions Jv(x) and Yv(x) and their derivatives.

JYZO computes the zeros of Bessel functions Jn(x), Yn(x) and derivatives.

KLVNA computes Kelvin functions ber(x), bei(x), ker(x), and kei(x), and derivatives.

KLVNB computes Kelvin functions ber(x), bei(x), ker(x), and kei(x), and derivatives.

KLVNZO computes zeros of the Kelvin functions.

KMN computes expansion coefficients of the prolate and oblate spheroidal functions.

LAGZO computes zeros of the Laguerre polynomial, and integration weights.

LAMN computes lambda functions and derivatives.

LAMV computes lambda functions and derivatives of arbitrary order.

LEGZO computes the zeros of Legendre polynomials, and integration weights.

LGAMA computes the gamma function or log of the gamma function.

LPMN computes associated Legendre functions Pmn(X) and P'mn(x).

LPMNS computes associated Legendre functions Pmn(X) and P'mn(x).

LPMNV computes associated Legendre functions Pmv(X) with arbitrary order.

LPN computes Legendre polynomials Pn(x) and derivatives.

LPNI computes Legendre polynomials Pn(x), derivatives, and integrals.

LQMN computes associated Legendre functions Qmn(x) and derivatives.

LQMNS computes associated Legendre functions Qmn(x) and derivatives.

LQNA computes Legendre function Qn(x) and derivatives.

LQNB computes Legendre function Qn(x) and derivatives.

MSTA1 determines a backward recurrence starting point for Jn(x).

MSTA2 determines a backward recurrence starting point for Jn(x).

MTU0 computes Mathieu functions CEM(x,q) and SEM(x,q) and derivatives.

MTU12 computes modified Mathieu functions of the first and second kind.

OTHPL computes orthogonal polynomials Tn(x), Un(x), Ln(x) or Hn(x).

PBDV computes parabolic cylinder functions Dv(x) and derivatives.

PBVV computes parabolic cylinder functions Vv(x) and their derivatives.

PBWA computes parabolic cylinder functions W(a,x) and derivatives.

PSI computes the Psi function.

QSTAR computes Q*mn(ic) for oblate radial functions with a small argument.

RCTJ computes RiccatiBessel function of the first kind, and derivatives.

RCTY computes RiccatiBessel function of the second kind, and derivatives.

REFINE refines an estimate of the characteristic value of Mathieu functions.

RMN1 computes prolate and oblate spheroidal functions of the first kind.

RMN2L computes prolate and oblate spheroidal functions of the second kind for large CX.

RMN2SO computes oblate radial functions of the second kind with small argument.

RMN2SP computes prolate and oblate spheroidal radial functions of the second kind with small argument.

RSWFO computes prolate spheroidal radial function of first and second kinds.

RSWFP computes prolate spheroidal radial function of first and second kinds.

SCKA computes the expansion coefficients for prolate and oblate spheroidal functions.

SCKB computes the expansion coefficients for prolate and oblate spheroidal functions.

SDMN: expansion coefficients DK for prolate and oblate spheroidal functions.

SEGV computes the characteristic values of spheroidal wave functions.

SPHI computes spherical Bessel functions in(x) and their derivatives.

SPHJ computes spherical Bessel functions jn(x) and their derivatives.

SPHK computes modified spherical Bessel functions kn(x) and their derivatives.

SPHY computes spherical Bessel functions yn(x) and their derivatives.

STVH0 computes the Struve function H0(x).

STVH1 computes the Struve function H1(x).

STVHV computes the Struve function Hv(x) with arbitrary order v.

STVL0 computes the modified Struve function L0(x).

STVL1 computes the modified Struve function L1(x).

STVLV computes the modified Struve function with arbitary order.

TIMESTAMP prints out the current YMDHMS date as a timestamp.

VVLA computes parabolic cylinder function Vv(x) for large arguments.

VVSA computes parabolic cylinder function Vv(x) for small arguments.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 12 April 2012.