### Table of Contents

# acosh

## NAME

acosh, acoshf, acoshl - inverse hyperbolic cosine functions

## SYNOPSIS

c99 [ *flag*… ] *file*… **-lm** [ *library*… ]

#include <math.h>

**double acosh**(**double** *x*);

**float acoshf**(**float** *x*);

**long double acoshl**(**long double** *x*);

## DESCRIPTION

These functions compute the inverse hyperbolic cosine of their argument *x*.

## RETURN VALUES

Upon successful completion, these functions return the inverse hyperbolic cosine of their argument.

For finite values of *x* < 1, a domain error occurs and NaN is returned.

If *x* is NaN, NaN is returned.

If *x* is +1, +0 is returned.

If *x* is +Inf, +Inf is returned.

If *x* is −Inf, a domain error occurs and NaN is returned.

For exceptional cases, **matherr**(3M) tabulates the values to be returned by **acosh()** as specified by SVID3 and XPG3.

## ERRORS

These functions will fail if:

**Domain Error**

The *x* argument is finite and less than 1.0, or is −Inf.

If the integer expression (**math_errhandling** & **MATH_ERREXCEPT**) is non-zero, the invalid floating-point exception is raised.

The **acosh()** function sets **errno** to **EDOM** if *x* is less than 1.0.

## USAGE

An application wanting to check for exceptions should call **feclearexcept**(**FE_ALL_EXCEPT**) before calling these functions. On return, if **fetestexcept**(**FE_INVALID** | **FE_DIVBYZERO** | **FE_OVERFLOW** | **FE_UNDERFLOW**) is non-zero, an exception has been raised. An application should either examine the return value or check the floating point exception flags to detect exceptions.

An application can also set **errno** to 0 before calling **acosh()**. On return, if **errno** is non-zero, an error has occurred. The **acoshf()** and **acoshl()** functions do not set **errno**.

## ATTRIBUTES

See attributes(7) for descriptions of the following attributes:

## SEE ALSO

**math.h**(3HEAD), **matherr**(3M), **cosh**(3M), **feclearexcept**(3M), **fetestexcept**(3M), standards(7), attributes(7)