Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sinh(3M) — CX/UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

matherr(3M)

hc(1)

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

matherr(3M), hc(1). 

CX/UX Programmer’s Reference Manual

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026