Next: Errors in Math Functions, Previous: Hyperbolic Functions, Up: Mathematics
These are some more exotic mathematical functions which are sometimes useful. Currently they only have real-valued versions.
— Function: float erff (float x)
— Function: long double erfl (long double x)
erfreturns the error function of x. The error function is defined aserf (x) = 2/sqrt(pi) * integral from 0 to x of exp(-t^2) dt
— Function: float erfcf (float x)
— Function: long double erfcl (long double x)
erfcreturns1.0 - erf(x), but computed in a fashion that avoids round-off error when x is large.
— Function: float lgammaf (float x)
— Function: long double lgammal (long double x)
lgammareturns the natural logarithm of the absolute value of the gamma function of x. The gamma function is defined asgamma (x) = integral from 0 to ∞ of t^(x-1) e^-t dtThe sign of the gamma function is stored in the global variable signgam, which is declared in math.h. It is
1if the intermediate result was positive or zero, or-1if it was negative.To compute the real gamma function you can use the
tgammafunction or you can compute the values as follows:lgam = lgamma(x); gam = signgam*exp(lgam);The gamma function has singularities at the non-positive integers.
lgammawill raise the zero divide exception if evaluated at a singularity.
— Function: float lgammaf_r (float x, int *signp)
— Function: long double lgammal_r (long double x, int *signp)
lgamma_ris just likelgamma, but it stores the sign of the intermediate result in the variable pointed to by signp instead of in the signgam global. This means it is reentrant.
— Function: float gammaf (float x)
— Function: long double gammal (long double x)
These functions exist for compatibility reasons. They are equivalent to
lgammaetc. It is better to uselgammasince for one the name reflects better the actual computation, moreoverlgammais standardized in ISO C99 whilegammais not.
— Function: float tgammaf (float x)
— Function: long double tgammal (long double x)
tgammaapplies the gamma function to x. The gamma function is defined asgamma (x) = integral from 0 to ∞ of t^(x-1) e^-t dtThis function was introduced in ISO C99.
— Function: float j0f (float x)
— Function: long double j0l (long double x)
j0returns the Bessel function of the first kind of order 0 of x. It may signal underflow if x is too large.
— Function: float j1f (float x)
— Function: long double j1l (long double x)
j1returns the Bessel function of the first kind of order 1 of x. It may signal underflow if x is too large.
— Function: float jnf (int n, float x)
— Function: long double jnl (int n, long double x)
jnreturns the Bessel function of the first kind of order n of x. It may signal underflow if x is too large.
— Function: float y0f (float x)
— Function: long double y0l (long double x)
y0returns the Bessel function of the second kind of order 0 of x. It may signal underflow if x is too large. If x is negative,y0signals a domain error; if it is zero,y0signals overflow and returns -∞.
— Function: float y1f (float x)
— Function: long double y1l (long double x)
y1returns the Bessel function of the second kind of order 1 of x. It may signal underflow if x is too large. If x is negative,y1signals a domain error; if it is zero,y1signals overflow and returns -∞.
— Function: float ynf (int n, float x)
— Function: long double ynl (int n, long double x)
ynreturns the Bessel function of the second kind of order n of x. It may signal underflow if x is too large. If x is negative,ynsignals a domain error; if it is zero,ynsignals overflow and returns -∞.