## Elementary Functions

The following routines provide portable implementations of functions found in the BSD math library. When native versions are not available the functions described here can be used instead. The substitution can be made automatically if you use autoconf to compile your application (see section Portability functions).

Function: double gsl_log1p (const double x)
This function computes the value of @math{\log(1+x)} in a way that is accurate for small x. It provides an alternative to the BSD math function log1p(x).

Function: double gsl_expm1 (const double x)
This function computes the value of @math{\exp(x)-1} in a way that is accurate for small x. It provides an alternative to the BSD math function expm1(x).

Function: double gsl_hypot (const double x, const double y)
This function computes the value of @math{\sqrt{x^2 + y^2}} in a way that avoids overflow. It provides an alternative to the BSD math function hypot(x,y).

Function: double gsl_acosh (const double x)
This function computes the value of @math{\arccosh(x)}. It provides an alternative to the standard math function acosh(x).

Function: double gsl_asinh (const double x)
This function computes the value of @math{\arcsinh(x)}. It provides an alternative to the standard math function asinh(x).

Function: double gsl_atanh (const double x)
This function computes the value of @math{\arctanh(x)}. It provides an alternative to the standard math function atanh(x).