## Name

cosh, coshf, coshl — hyperbolic cosine function

## Synopsis

```#include <math.h>
```
 ```double cosh(``` double x`)`;

 ```float coshf(``` float x`)`;

 ```long double coshl(``` long double x`)`;

Note
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
`coshf`(), `coshl`():
`_BSD_SOURCE` || `_SVID_SOURCE` || `_XOPEN_SOURCE` >= 600 || `_ISOC99_SOURCE` || `_POSIX_C_SOURCE` >= 200112L;
or cc `-std=c99`
Note Link with `−lm`.

## DESCRIPTION

The `cosh`() function returns the hyperbolic cosine of `x`, which is defined mathematically as:

```    cosh(x) = (exp(x) + exp(−x)) / 2
```

## RETURN VALUE

On success, these functions return the hyperbolic cosine of `x`.

If `x` is a NaN, a NaN is returned.

If `x` is +0 or −0, 1 is returned.

If `x` is positive infinity or negative infinity, positive infinity is returned.

If the result overflows, a range error occurs, and the functions return +`HUGE_VAL`, +`HUGE_VALF`, or +`HUGE_VALL`, respectively.

## ERRORS

See math_error(7) for information on how to determine whether an error has occurred when calling these functions.

The following errors can occur:

Range error: result overflow

`errno` is set to ERANGE. An overflow floating-point exception (`FE_OVERFLOW`) is raised.

## CONFORMING TO

C99, POSIX.1-2001. The variant returning double also conforms to SVr4, 4.3BSD.

## BUGS

In glibc version 2.3.4 and earlier, an overflow floating-point (`FE_OVERFLOW`) exception is not raised when an overflow occurs.

This page is part of release 3.52 of the Linux `man-pages` project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man−pages/.