# fundoc.f

          SUBROUTINE FUNDOC
    C***BEGIN PROLOGUE  FUNDOC
    C***PURPOSE  Documentation for FNLIB, a collection of routines for
    C            evaluating elementary and special functions.
    C***LIBRARY   SLATEC
    C***CATEGORY  C, Z
    C***TYPE      ALL (FUNDOC-A)
    C***KEYWORDS  DOCUMENTATION, ELEMENTARY FUNCTIONS, SPECIAL FUNCTIONS
    C***AUTHOR  Kahaner, D. K., (NBS)
    C***DESCRIPTION
    C
    C The SLATEC Library --  Elementary And Special Functions
    C
    C This describes the elementary and special function routines available
    C in the SLATEC library.  Most of the these routines were written by
    C Wayne Fullerton while at LANL.  Some were written by Don Amos of SNLA.
    C There are approximately 63 single precision, 63 double precision and
    C 25 complex user callable elementary and special function routines.
    C
    C The table below gives a breakdown of routines according to their
    C function.  Unless otherwise indicated all routines are function
    C subprograms.
    C                                             Sngl.      Dble.
    C Description              Notation           Prec.      Prec.   Complex
    C
    C         ***Intrinsic Functions and Fundamental Functions***
    C Unpack floating point              Call R9UPAK(X,Y,N)  D9UPAK    --
    C  number
    C Pack floating point                        R9PAK(Y,N)  D9PAK     --
    C  number
    C Initialize orthogonal               INITS(OS,NOS,ETA)  INITDS    --
    C  polynomial series
    C Evaluate Chebyshev       summation for  CSEVL(X,CS,N)  DCSEVL    --
    C series                  i = 1 to n of
    C                          cs(i)*(2*x)**(i-1)
    C
    C                  ***Elementary Functions***
    C Argument = theta in      z = \ z \ *          --         --    CARG(Z)
    C  radians                 e**(i * theta)
    C Cube root                                   CBRT(X)    DCBRT   CCBRT
    C Relative error exponen-  ((e**x) -1) / x    EXPREL(X)  DEXPRL  CEXPRL
    C  tial from first order
    C Common logarithm         log to the base 10   --         --  CLOG10(Z)
    C                          of z
    C Relative error logarithm ln(1 + x)          ALNREL(X)  DLNREL  CLNREL
    C Relative error logarithm (ln(1 + x) - x     R9LN2R(X)  D9LN2R  C9LN2R
    C from second order        + x**2/2) / x**3
    C               ***Trigonometric and Hyperbolic Functions***
    C Tangent                  tan z                --         --    CTAN(Z)
    C Cotangent                cot x              COT(X)     DCOT    CCOT
    C Sine x in degrees        sin((2*pi*x)/360)  SINDG(X)   DSINDG    --
    C Cosine x in degrees      cos((2*pi*x)/360)  COSDG(X)   DCOSDG    --
    C Arc sine                 arcsin (z)           --         --   CASIN(Z)
    C Arc cosine               arccos (z)           --         --   CACOS(Z)
    C Arc tangent              arctan (z)           --         --   CATAN(Z)
    C Quadrant correct         arctan (z1/z2)       --         -- CATAN2(Z1,
    C  arc tangent                                                       Z2)
    C Hyperbolic sine          sinh z               --         --   CSINH(Z)
    C Hyperbolic cosine        cosh z               --         --   CCOSH(Z)
    C Hyperbolic tangent       tanh z               --         --   CTANH(Z)
    C Arc hyperbolic sine      arcsinh (x)        ASINH(X)   DASINH  CASINH
    C Arc hyperbolic cosine    arccosh (x)        ACOSH(X)   DACOSH  CACOSH
    C Arc hyperbolic tangent   arctanh (x)        ATANH(X)   DATANH  CATANH
    C Relative error arc       (arctan (x) - x)   R9ATN1(X)  D9ATN1    --
    C  tangent from first order   / x**3
    C              ***Exponential Integrals and Related Functions***
    C Exponential integral     Ei(x) = (minus)    EI(X)      DEI       --
    C                          the integral from
    C                          -x to infinity of
    C                            (e**-t / t)dt
    C Exponential integral     E sub 1 (x) =      E1(X)      DE1       --
    C                          the integral from x
    C                            to infinity of
    C                          (e**-t / t) dt
    C Logarithmic integral     li(x) = the        ALI(X)     DLI       --
    C                          integral from 0 to
    C                          x of (1 / ln t) dt
    C   Sequences of exponential integrals.
    C   M values are computed where
    C   k=0,1,...M-1 and n>=1
    C Exponential integral     E sub n+k (x) Call EXINT(X,   DEXINT    --
    C                        =the integral from   N,KODE,M,TOL,
    C                         1 to infinity of    EN,IERR)
    C                       (e**(-x*t)/t**(n+k))dt
    C                 ***Gamma Functions and Related Functions***
    C Factorial                n!                 FAC(N)     DFAC      --
    C Binomial                 n!/(m!*(n-m)!)     BINOM(N,M) DBINOM    --
    C Gamma                    gamma(x)           GAMMA(X)   DGAMMA  CGAMMA
    C Gamma(x) under and                     Call GAMLIM(    DGAMLM    --
    C  overflow limits                           XMIN,XMAX)
    C Reciprocal gamma         1 / gamma(x)       GAMR(X)    DGAMR   CGAMR
    C Log abs gamma            ln \gamma(x)\      ALNGAM(X)  DLNGAM    --
    C Log gamma                ln gamma(z)          --         --    CLNGAM
    C Log abs gamma       g = ln \gamma(x)\  Call ALGAMS(X,  DLGAMS    --
    C with sign           s = sign gamma(x)      G,S)
    C Incomplete gamma         gamma(a,x) =       GAMI(A,X)  DGAMI     --
    C                          the integral from
    C                          0 to x of
    C                         (t**(a-1) * e**-t)dt
    C Complementary            gamma(a,x) =       GAMIC(A,X) DGAMIC    --
    C  incomplete gamma        the integral from
    C                          x to infinity of
    C                         (t**(a-1) * e**-t)dt
    C Tricomi's             gamma super star(a,x) GAMIT(A,X) DGAMIT    --
    C  incomplete gamma        = x**-a *
    C                         incomplete gamma(a,x)
    C                          / gamma(a)
    C Psi (Digamma)            psi(x) = gamma'(x) PSI(X)     DPSI    CPSI
    C                          / gamma(x)
    C Pochhammer's         (a) sub x = gamma(a+x) POCH(A,X)  DPOCH     --
    C  generalized symbol      / gamma(a)
    C Pochhammer's symbol    ((a) sub x -1) / x   POCH1(A,X) DPOCH1    --
    C  from first order
    C Beta                     b(a,b) = (gamma(a) BETA(A,B)  DBETA   CBETA
    C                          * gamma(b))
    C                          / gamma(a+b)
    C                           = the integral
    C                           from 0 to 1 of
    C                           (t**(a-1) *
    C                           (1-t)**(b-1))dt
    C Log beta                 ln b(a,b)         ALBETA(A,B) DLBETA  CLBETA
    C Incomplete beta          i sub x (a,b) =  BETAI(X,A,B) DBETAI    __
    C                          b sub x (a,b) / b(a,b)
    C                           = 1 / b(a,b) *
    C                          the integral
    C                          from 0 to x of
    C                          (t**(a-1) *
    C                          (1-t)**(b-1))dt
    C Log gamma correction     ln gamma(x) -      R9LGMC(X)  D9LGMC  C9LGMC
    C  term when Stirling's    (ln(2 * pi))/2 -
    C  approximation is valid  (x - 1/2) * ln(x) + x
    C                ***Error Functions and Fresnel Integrals***
    C Error function           erf x = (2 /       ERF(X)     DERF      --
    C                          square root of pi) *
    C                          the integral from
    C                          0 to x of
    C                          e**(-t**2)dt
    C Complementary            erfc x = (2 /      ERFC(X)    DERFC     --
    C  error function          square root of pi) *
    C                          the integral from
    C                          x to infinity of
    C                          e**(-t**2)dt
    C Dawson's function        F(x) = e**(-x**2)  DAWS(X)    DDAWS     --
    C                          * the integral from
    C                          from 0 to x of
    C                          e**(t**2)dt
    C                         ***Bessel Functions***
    C   Bessel functions of special integer order
    C First kind, order zero   J sub 0 (x)        BESJ0(X)   DBESJ0    --
    C First kind, order one    J sub 1 (x)        BESJ1(X)   DBESJ1    --
    C Second kind, order zero  Y sub 0 (x)        BESY0(X)   DBESY0    --
    C Second kind, order one   Y sub 1 (x)        BESY1(X)   DBESY1    --
    C   Modified (hyperbolic) Bessel functions of special integer order
    C First kind, order zero   I sub 0 (x)        BESI0(X)   DBESI0    --
    C First kind, order one    I sub 1 (x)        BESI1(X)   DBESI1    --
    C Third kind, order zero   K sub 0 (x)        BESK0(X)   DBESK0    --
    C Third kind, order one    K sub 1 (x)        BESK1(X)   DBESK1    --
    C   Modified (hyperbolic) Bessel functions of special integer order
    C   scaled by an exponential
    C First kind, order zero   e**-\x\ * I sub 0(x) BESI0E(X) DBSI0E   --
    C First kind, order one    e**-\x\ * I sub 1(x) BESI1E(X) DBSI1E   --
    C Third kind, order zero   e**x * K sub 0 (x)   BESK0E(X) DBSK0E   --
    C Third kind, order one    e**x * K sub 1 (x)   BESK1E(X) DBSK1E   --
    C   Sequences of Bessel functions of general order.
    C   N values are computed where  k = 1,2,...N and v .ge. 0.
    C Modified first kind      I sub v+k-1 (x) Call BESI(X,   DBESI    --
    C                          optional scaling  ALPHA,KODE,N,
    C                          by e**(-x)        Y,NZ)
    C First kind               J sub v+k-1 (x) Call BESJ(X,   DBESJ    --
    C                                            ALPHA,N,Y,NZ)
    C Second kind              Y sub v+k-1 (x) Call BESY(X,   DBESY    --
    C                                            FNU,N,Y)
    C Modified third kind      K sub v+k-1 (x) Call BESK(X,   DBESK    --
    C                          optional scaling  FNU,KODE,N,Y,
    C                          by e**(x)         NZ)
    C   Sequences of Bessel functions.  \N\ values are computed where
    C   I = 0, 1, 2, ..., N-1  for N > 0  or I = 0, -1, -2, ..., N+1
    C   for N < 0.
    C Modified third kind      K sub v+i (x)   Call BESKS(    DBESKS   --
    C                                           XNU,X,N,BK)
    C   Sequences of Bessel functions scaled by an exponential.
    C   \N\ values are computed where  I = 0, 1, 2, ..., N-1
    C   for N > 0  or  I = 0, -1, -2, ..., N+1  for N < 0.
    C Modified third kind      e**x *         Call BESKES(    DBSKES   --
    C                          K sub v+i (x)     XNU,X,N,BK)
    C                ***Bessel Functions of Fractional Order***
    C   Airy functions
    C Airy                     Ai(x)              AI(X)      DAI       --
    C Bairy                    Bi(x)              BI(X)      DBI       --
    C   Exponentially scaled Airy functions
    C Airy                     Ai(x), x <= 0      AIE(X)     DAIE      --
    C                          exp(2/3 * x**(3/2))
    C                          * Ai(x), x >= 0
    C Bairy                    Bi(x), x <= 0      BIE(X)     DBIE      --
    C                          exp(-2/3 * x**(3/2))
    C                          * Bi(x), x >= 0
    C                 ***Confluent Hypergeometric Functions***
    C Confluent                U(a,b,x)           CHU(A,B,X) DCHU      --
    C  hypergeometric
    C                     ***Miscellaneous Functions***
    C Spence                   s(x) = - the       SPENC(X)   DSPENC    --
    C  dilogarithm             integral from
    C                          0 to x of
    C                          ((ln \1-y\) / y)dy
    C
    C***REFERENCES  (NONE)
    C***ROUTINES CALLED  (NONE)
    C***REVISION HISTORY  (YYMMDD)
    C   801015  DATE WRITTEN
    C   861211  REVISION DATE from Version 3.2
    C   891214  Prologue converted to Version 4.0 format.  (BAB)
    C   900326  Routine name changed from FNLIBD to FUNDOC.  (WRB)
    C   900723  PURPOSE section revised.  (WRB)
    C***END PROLOGUE  FUNDOC