Copyright (C) 2000-2012 |
GNU Info (libc.info)Special FunctionsSpecial Functions ================= These are some more exotic mathematical functions which are sometimes useful. Currently they only have real-valued versions. - Function: double erf (double X) - Function: float erff (float X) - Function: long double erfl (long double X) `erf' returns the error function of X. The error function is defined as erf (x) = 2/sqrt(pi) * integral from 0 to x of exp(-t^2) dt - Function: double erfc (double X) - Function: float erfcf (float X) - Function: long double erfcl (long double X) `erfc' returns `1.0 - erf(X)', but computed in a fashion that avoids round-off error when X is large. - Function: double lgamma (double X) - Function: float lgammaf (float X) - Function: long double lgammal (long double X) `lgamma' returns the natural logarithm of the absolute value of the gamma function of X. The gamma function is defined as gamma (x) = integral from 0 to oo of t^(x-1) e^-t dt The sign of the gamma function is stored in the global variable SIGNGAM, which is declared in `math.h'. It is `1' if the intermediate result was positive or zero, or `-1' if it was negative. To compute the real gamma function you can use the `tgamma' function 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. `lgamma' will raise the zero divide exception if evaluated at a singularity. - Function: double lgamma_r (double X, int *SIGNP) - Function: float lgammaf_r (float X, int *SIGNP) - Function: long double lgammal_r (long double X, int *SIGNP) `lgamma_r' is just like `lgamma', 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: double gamma (double X) - Function: float gammaf (float X) - Function: long double gammal (long double X) These functions exist for compatibility reasons. They are equivalent to `lgamma' etc. It is better to use `lgamma' since for one the name reflects better the actual computation, moreover `lgamma' is standardized in ISO C99 while `gamma' is not. - Function: double tgamma (double X) - Function: float tgammaf (float X) - Function: long double tgammal (long double X) `tgamma' applies the gamma function to X. The gamma function is defined as gamma (x) = integral from 0 to oo of t^(x-1) e^-t dt This function was introduced in ISO C99. - Function: double j0 (double X) - Function: float j0f (float X) - Function: long double j0l (long double X) `j0' returns the Bessel function of the first kind of order 0 of X. It may signal underflow if X is too large. - Function: double j1 (double X) - Function: float j1f (float X) - Function: long double j1l (long double X) `j1' returns the Bessel function of the first kind of order 1 of X. It may signal underflow if X is too large. - Function: double jn (int n, double X) - Function: float jnf (int n, float X) - Function: long double jnl (int n, long double X) `jn' returns the Bessel function of the first kind of order N of X. It may signal underflow if X is too large. - Function: double y0 (double X) - Function: float y0f (float X) - Function: long double y0l (long double X) `y0' returns 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, `y0' signals a domain error; if it is zero, `y0' signals overflow and returns -oo. - Function: double y1 (double X) - Function: float y1f (float X) - Function: long double y1l (long double X) `y1' returns 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, `y1' signals a domain error; if it is zero, `y1' signals overflow and returns -oo. - Function: double yn (int n, double X) - Function: float ynf (int n, float X) - Function: long double ynl (int n, long double X) `yn' returns 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, `yn' signals a domain error; if it is zero, `yn' signals overflow and returns -oo. |