Next: Branch Cuts, Previous: Trigonometric and Hyperbolic Functions, Up: Scientific 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!