calc: Advanced Math Functions

 
 9.3 Advanced Mathematical Functions
 ===================================
 
 Calc can compute a variety of less common functions that arise in
 various branches of mathematics.  All of the functions described in this
 section allow arbitrary complex arguments and, except as noted, will
 work to arbitrarily large precision.  They can not at present handle
 error forms or intervals as arguments.
 
    NOTE: These functions are still experimental.  In particular, their
 accuracy is not guaranteed in all domains.  It is advisable to set the
 current precision comfortably higher than you actually need when using
 these functions.  Also, these functions may be impractically slow for
 some values of the arguments.
 
    The ‘f g’ (‘calc-gamma’) [‘gamma’] command computes the Euler gamma
 function.  For positive integer arguments, this is related to the
 factorial function: ‘gamma(n+1) = fact(n)’.  For general complex
 arguments the gamma function can be defined by the following definite
 integral: ‘gamma(a) = integ(t^(a-1) exp(t), t, 0, inf)’.  (The actual
 implementation uses far more efficient computational methods.)
 
    The ‘f G’ (‘calc-inc-gamma’) [‘gammaP’] command computes the
 incomplete gamma function, denoted ‘P(a,x)’.  This is defined by the
 integral, ‘gammaP(a,x) = integ(t^(a-1) exp(t), t, 0, x) / gamma(a)’.
 This implies that ‘gammaP(a,inf) = 1’ for any ‘a’ (see the definition of
 the normal gamma function).
 
    Several other varieties of incomplete gamma function are defined.
 The complement of ‘P(a,x)’, called ‘Q(a,x) = 1-P(a,x)’ by some authors,
 is computed by the ‘I f G’ [‘gammaQ’] command.  You can think of this as
 taking the other half of the integral, from ‘x’ to infinity.
 
    The functions corresponding to the integrals that define ‘P(a,x)’ and
 ‘Q(a,x)’ but without the normalizing ‘1/gamma(a)’ factor are called
 ‘g(a,x)’ and ‘G(a,x)’, respectively (where ‘g’ and ‘G’ represent the
 lower- and upper-case Greek letter gamma).  You can obtain these using
 the ‘H f G’ [‘gammag’] and ‘H I f G’ [‘gammaG’] commands.
 
    The ‘f b’ (‘calc-beta’) [‘beta’] command computes the Euler beta
 function, which is defined in terms of the gamma function as ‘beta(a,b)
 = gamma(a) gamma(b) / gamma(a+b)’, or by ‘beta(a,b) = integ(t^(a-1)
 (1-t)^(b-1), t, 0, 1)’.
 
    The ‘f B’ (‘calc-inc-beta’) [‘betaI’] command computes the incomplete
 beta function ‘I(x,a,b)’.  It is defined by ‘betaI(x,a,b) =
 integ(t^(a-1) (1-t)^(b-1), t, 0, x) / beta(a,b)’.  Once again, the ‘H’
 (hyperbolic) prefix gives the corresponding un-normalized version
 [‘betaB’].
 
    The ‘f e’ (‘calc-erf’) [‘erf’] command computes the error function
 ‘erf(x) = 2 integ(exp(-(t^2)), t, 0, x) / sqrt(pi)’.  The complementary
 error function ‘I f e’ (‘calc-erfc’) [‘erfc’] is the corresponding
 integral from ‘x’ to infinity; the sum ‘erf(x) + erfc(x) = 1’.
 
    The ‘f j’ (‘calc-bessel-J’) [‘besJ’] and ‘f y’ (‘calc-bessel-Y’)
 [‘besY’] commands compute the Bessel functions of the first and second
 kinds, respectively.  In ‘besJ(n,x)’ and ‘besY(n,x)’ the “order”
 parameter ‘n’ is often an integer, but is not required to be one.
 Calc’s implementation of the Bessel functions currently limits the
 precision to 8 digits, and may not be exact even to that precision.  Use
 with care!