# Special Functions

The Intel Math library supports the following special functions:

## ANNUITY

Description: The annuity function computes the present value factor for an annuity, (1 - (1+x)(-y) ) / x, where x is a rate and y is a period.

errno: ERANGE, for underflow and overflow conditions

Calling interface:
double annuity(double x, double y);
long double annuity(double x, double y);
float annuityf(float x, double y);

## COMPOUND

Description: The compound function computes the compound interest factor, (1+x)y, where x is a rate and y is a period.

errno: ERANGE, for underflow and overflow conditions

Calling interface:
double compound(double x, double y);
long double compound(double x, double y);
float compoundf(float x, double y);

## ERF

Description: The erf function returns the error function value.

Calling interface:
double erf(double x);
long double erfl(long double x);
float erff(float x);

## ERFC

Description: The erfc function returns the complementary error function value.

errno: ERANGE, for underflow conditions

Calling interface:
double erfc(double x);
long double erfcl(long double x);
float erfcf(float x);

## GAMMA

Description: The gamma function returns the value of the logarithm of the absolute value of gamma.

errno: ERANGE, for overflow conditions when x is a negative integer.

Calling interface:
double gamma(double x);
long double gammal(long double x);
float gammaf(float x);

## GAMMA_R

Description: The gamma_r function returns the value of the logarithm of the absolute value of gamma. The sign of the gamma func­tion is returned in the integer signgam.

Calling interface:
double gamma_r(double x, int *signgam);
double gammal_r(long double x, int *signgam);
float gammaf_r(float x, int *signgam);

## J0

Description: Computes the Bessel function (of the first kind) of x with order 0.

Calling interface:
double j0(double x);
double j0l(long double x);
float j0f(float x);

## J1

Description: Computes the Bessel function (of the first kind) of x with order 1.

Calling interface:
double j1(double x);
double j1l(long double x);
float j1f(float x);

## JN

Description: Computes the Bessel function (of the first kind) of x with order n.

Calling interface:
double jn(int n, double x);
double jnl(int n, long double x);
float jnf(int n, float x);

## LGAMMA

Description: The lgamma function returns the value of the logarithm of the absolute value of gamma.

errno: ERANGE, for overflow conditions, x=0 or negative integers.

Calling interface:
double lgamma(double x);
long double lgammal(long double x);
float lgammaf(float x);

## LGAMMA_R

Description: The lgamma_r function returns the value of the logarithm of the absolute value of gamma. The sign of the gamma func­tion is returned in the integer signgam.

errno: ERANGE, for overflow conditions, x=0 or negative integers.

Calling interface:
double lgamma_r(double x, int *signgam);
long double lgamma_r(double x, int *signgam);
float lgammaf_r(float x, int *signgam);

## TGAMMA

Description: The tgamma function computes the gamma function of x.

errno: EDOM, for x=0 or negative integers.

Calling interface:
double tgamma(double x);
long double tgammal(long double x);
float tgammaf(float x);

## Y0

Description: Computes the Bessel function (of the second kind) of x with order 0.

errno: EDOM, for x <= 0

Calling interface:
double y0(double x);
double y0l(long double x);
float y0f(float x);

## Y1

Description: Computes the Bessel function (of the second kind) of x with order 1.

errno: EDOM, for x <= 0

Calling interface:
double y1(double x);
double y1l(long double x);
float y1f(float x);

## YN

Description: Computes the Bessel function (of the second kind) of x with order n.

errno: EDOM, for x <= 0

Calling interface:
double yn(int n, double x);
double ynl(int n, long double x);
float ynf(int n, float x);