sinh(3M) 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, respec-
tively, 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
Page 1 CX/UX Programmer's Reference Manual
sinh(3M) sinh(3M)
___________________________________________
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
Page 2 CX/UX Programmer's Reference Manual
sinh(3M) sinh(3M)
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 preci-
sion 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 occa-
sional use of higher precision arithmetic and lengthier com-
putations designed to minimize round-off errors. The
library libm.a contains these robust functions.
An alternate math library, libM.a offers increased perfor-
mance 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 argu-
ments are well-understood and higher performance is pre-
ferred over increased accuracy. One consequence of these
less-robust functions is that erroneous arguments are not
caught and may produce meaningless answers.
SEE ALSO
matherr(3M), hc(1).
Page 3 CX/UX Programmer's Reference Manual