sinh(3M)
NAME
sinh, cosh, tanh, sinhf, coshf, tanhf, asinh, acosh, atanh − hyperbolic functions
SYNOPSIS
#include <math.h>
double sinh (x)
double x;
double cosh (x)
double x;
double tanh (x)
double x;
double asinh (x)
double x;
double acosh (x)
double x;
double atanh (x)
double x;
float sinhf (float x)
float coshf (float x)
float tanhf (float x)
DESCRIPTION
sinh, sinhf, cosh, coshf, tanh, and tanhf return, respectively, the hyberbolic sine, cosine, and tangent of their argument.
Asinh, acosh, and atanh return, respectively, the inverse hyberbolic sine, cosine, and tangent of their argument.
DIAGNOSTICS
For the double precision functions:
| SINH: | result | errno | |
| overflow, x >= 0 | +HUGE | ERANGE | no message |
| overflow, x < 0 | -HUGE | ERANGE | no message |
| x = infinity | qNaN | EDOM | no message |
| x = NaN | qNaN | EDOM | no message |
| COSH: | result | errno | |
| overflow | +HUGE | ERANGE | no message |
| x = infinity | qNaN | EDOM | no message |
| x = NaN | qNaN | EDOM | no message |
| TANH: | result | errno | |
| x = infinity | qNaN | EDOM | no message |
| x = NaN | qNaN | EDOM | no message |
| ASINH: | result | errno | |
| x = infinity | qNaN | EDOM | no message |
| x = NaN | qNaN | EDOM | no message |
| ACOSH: | result | errno | |
| x < 1 | qNaN | EDOM | message |
| x = infinity | qNaN | EDOM | no message |
| x = NaN | qNaN | EDOM | no message |
| ATANH: | result | errno | |
| |x| ≥ 1 | qNaN | EDOM | message |
| x = infinity | qNaN | EDOM | no message |
| x = NaN | qNaN | EDOM | no message |
In programs linked in one of the ANSI C compilation modes (see hc(1)), and in programs linked in the 88open OCS-compliant mode, sinh and cosh return HUGE_VAL instead of HUGE.
These error-handling procedures may be changed with the matherr(3M) function, if the program is not linked in ANSI C conforming mode (−Xc). See hc(1) for more information about compilation modes.
For the single precision functions:
| SINHF,COSHF: | result | errno | |
| overflow | qNaN | OVERFLOW | no message |
| x = infinity | qNaN | DOMAIN | no message |
| x = NaN | qNaN | DOMAIN | no message |
| TANHF: | result | errno | |
| overflow | 1.0 | OVERFLOW | no message |
| underflow | 1.0 | OVERFLOW | no message |
| partial loss | x | PLOSS | no message |
| x = infinity | qNaN | EDOM | no message |
| x = NaN | qNaN | EDOM | no message |
If the absolute value of the argument is much less than 1.0, but not 0.0, a PLOSS error is generated.
In programs linked in one of the ANSI C conforming modes, tanhf, sinhf, and coshf set errno to EDOM instead of DOMAIN, and to ERANGE instead of OVERFLOW.
The matherr(3M) function has no effect on the single precision functions.
PERFORMANCE IMPROVEMENTS
These functions check the integrity of their arguments for mathematical validity and conformance to the IEEE Floating-Point Arithmetic standard’s definition of numbers. They also maintain high accuracy of computations through occasional use of higher precision arithmetic and lengthier computations designed to minimize round-off errors. The library libm.a contains these robust functions.
An alternate math library, libM.a offers increased performance at the expense of argument checking and accuracy. The checks for mathematical validity and IEEE numbers are not performed on these functions in this additional library. Checks at the boundary conditions of minimum and maximum representable values, however, are conducted. The accuracy losses are usually never more than 1-bit differences when compared with the robust versions. This alternate library is intended for use when the characteristics of the arguments are well-understood and higher performance is preferred over increased accuracy. One consequence of these less-robust functions is that erroneous arguments are not caught and may produce meaningless answers.
SEE ALSO
CX/UX Programmer’s Reference Manual