NUMAL Section 6.4.2
BEGIN SECTION : 6.4.2 (December, 1979)
AUTHOR: P.W.HEMKER.
CONTRIBUTOR: F.GROEN.
INSTITUTE: MATHEMATICAL CENTRE, AMSTERDAM.
RECEIVED: 730921.
REVISED: 781101 BY N.M.TEMME AND R.MONTIJN.
BRIEF DESCRIPTION:
THIS SECTION CONTAINS SIX PROCEDURES FOR THE COMPUTATION OF
HYPERBOLIC FUNCTIONS.
SINH COMPUTES FOR A REAL ARGUMENT X THE VALUE OF SINH(X).
COSH COMPUTES FOR A REAL ARGUMENT X THE VALUE OF COSH(X).
TANH COMPUTES FOR A REAL ARGUMENT X THE VALUE OF TANH(X).
ARCSINH COMPUTES FOR A REAL ARGUMENT X THE VALUE OF ARCSINH(X).
ARCCOSH COMPUTES FOR A REAL ARGUMENT X THE VALUE OF ARCCOSH(X).
ARCTANH COMPUTES FOR A REAL ARGUMENT X THE VALUE OF ARCTANH(X).
KEYWORDS:
HYPERBOLIC SINE,
HYPERBOLIC COSINE,
HYPERBOLIC TANGENT,
HYPERBOLIC ARCSINE,
HYPERBOLIC ARCCOSINE,
HYPERBOLIC ARCTANGENT.
SUBSECTION : SINH.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"REAL" "PROCEDURE" SINH(X); "VALUE" X; "REAL" X;
"CODE" 35111;
SINH : DELIVERS THE HYPERBOLIC SINE OF THE ARGUMENT X.
THE MEANING OF THE FORMAL PARAMETER IS :
X: <ARITHMETIC EXPRESSION>;
ENTRY: THE (REAL) ARGUMENT OF SINH(X).
PROCEDURES USED : OVERFLOW = CP 30009,
GIANT = CP 30004.
METHOD AND PERFORMANCE :
IF ABS(X) < 0.1 THEN SINH(X) IS CALCULATED BY MEANS OF AN
ECONOMIZED TAYLOR SERIES.
IF 0.1 <= ABS(X) < 0.3 WE USE THE FORMULA :
SINH(X) = 3 * SINH ( X/3 ) + 4 * SINH ( X/3 ) ** 3
IF 0.3 <= ABS(X) < 17.5 THEN WE USE THE FORMULA :
SINH(X) = 0.5 * ( EXP(X) - EXP(-X) ).
IF X >= 17.5 THEN WE TAKE SINH(X) = SIGN(X) * EXP( X-LN(2) ).
IN THE CASE OF OVERFLOW (I.E., ABS(X) > 741.6 (APPROXIMATELY))
THEN THE VALUE SINH = SIGN(X) * GIANT ( SEE SUBSECTION 6.2)
IS DELIVERED.
THE VALUES ARE COMPUTED WITH A RELATIVE PRECISION OF ABOUT "-13.
EXAMPLE OF USE :
SEE EXAMPLE OF USE OF THE PROCEDURE COSH (THIS SECTION).
SUBSECTION : COSH.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"REAL" "PROCEDURE" COSH(X); "VALUE" X; "REAL" X;
"CODE" 35112;
COSH : DELIVERS THE HYPERBOLIC COSINE OF THE ARGUMENT X.
THE MEANING OF THE FORMAL PARAMETER IS :
X: <ARITHMETIC EXPRESSION>;
ENTRY: THE (REAL) ARGUMENT OF COSH(X).
PROCEDURES USED : SINH = CP 35111.
METHOD AND PERFORMANCE :
IF ABS(X) < 17.5 THE FORMULA COSH(X) = 0.5 * ( EXP(X) + EXP(-X) )
IS USED ELSE COSH(X) = SINH(ABS(X)).
THE VALUES ARE COMPUTED WITH A RELATIVE PRECISION OF ABOUT "-13.
EXAMPLE OF USE :
THE FOLLOWING PROGRAM TESTS FOR X = -20, -2, -1, 0.1, 0.3 THE
RELATION : SINH(2 * X) - 2 * SINH(X) * COSH(X) = 0.
"BEGIN""REAL" X;
"FOR" X := -20, -2, -1, 0.1, 0.3 "DO"
OUTPUT(61,"("/,+2ZD.2D,3B,+D.D"+3D")",X,SINH(2 * X)
- 2 * SINH(X) * COSH(X) );
"END"
OUTPUT :
-20.00 +6.1"+003
-2.00 -1.1"-013
-1.00 -1.4"-014
+0.10 +0.0"+000
+0.30 +0.0"+000
SUBSECTION : TANH.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"REAL" "PROCEDURE" TANH(X); "VALUE" X; "REAL" X;
"CODE" 35113;
TANH : DELIVERS THE HYPERBOLIC TANGENT OF TH ARGUMENT X.
THE MEANING OF THE FORMAL PARAMETER IS :
X: <ARITHMETIC EXPRESSION>;
ENTRY: THE (REAL) ARGUMENT OF TANH(X).
PROCEDURES USED : SINH = CP 35111.
METHOD AND PERFORMANCE :
IF ABS(X) < 0.005 THE TANH(X) IS CALCULATED BY A TRUNCATED
POWER SERIES (TAYLOR'S FORMULA).
IF 0.005 <= ABS(X) < 0.3 WE USE THE FORMULA :
TANH(X) = SINH(X) / COSH(X).
IF 0.3 <= ABS(X) <= 17.5 WE USE THE FORMULA :
TANH(X) = ( 1 - EXP( -2 * X ) ) / ( 1 + EXP( -2 * X ) ).
IF ABS(X) > 17.5 THE VALUE SIGN(X) IS DELIVERED.
THE VALUES ARE COMPUTED WITH A RELATIVE PRECISION OF ABOUT "-13.
EXAMPLE OF USE :
THE FOLLOWING PROGRAM CHECKS FOR X = -100, -10, 0, 2, 5 THE
RELATION : 1 - TANH(X) ** 2 - 1 / COSH(X) ** 2 = 0.
"BEGIN" "REAL" X ;
"FOR" X := -100, -10, 0, 2, 5 "DO"
OUTPUT(61,"("/,+2ZD,3B,+D.D"+3D")",X,1-TANH(X)**2-1/COSH(X)**2);
"END"
RESULTS :
-100 -5.5"-087
-10 +1.2"-014
+0 +0.0"+000
+2 +9.8"-015
+5 -3.4"-015
SUBSECTION : ARCSINH.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"REAL" "PROCEDURE" ARCSINH(X); "VALUE" X; "REAL" X;
"CODE" 35114;
ARCSINH : DELIVERS THE INVERSE HYPERBOLIC SINE OF THE ARGUMENT X.
THE MEANING OF THE FORMAL PARAMETER IS :
X: <ARITHMETIC EXPRESSION>;
ENTRY: THE (REAL) ARGUMENT OF ARCSINH(X).
PROCEDURES USED : LOG ONE PLUS X = CP 35130.
METHOD AND PERFORMANCE :
IF ABS(X) <= "10 WE USE THE PROCEDURE LOG ONE PLUS X (SEE SECTION
6.4.3.) BY WRITING :
ARCSINH(X) = LN ( X + SQRT ( X * X + 1 ) ) =
LN(1+X+X**2/(1+SQRT(1+X**2))).
IF ABS(X) > "10 WE USE THE FORMULA :
ARCSINH(X) = SIGN(X) * ( LN(2) + LN ( ABS(X) ) ).
THE VALUES ARE COMPUTED WITH A RELATIVE PRECISION OF ABOUT "-13.
EXAMPLE OF USE :
"BEGIN"
OUTPUT(61,"("/,D.14D")",ARCSINH(SINH(0.01)));
OUTPUT(61,"("/,D.14D")",ARCSINH(SINH(0.05)));
OUTPUT(61,"("/,D.14D")",SINH(ARCSINH(0.05)));
OUTPUT(61,"("/,D.14D")",SINH(ARCSINH(0.01)));
"END"
DELIVERS :
+0.01000000000000
+0.05000000000000
+0.05000000000000
+0.01000000000000
SUBSECTION : ARCCOSH.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"REAL" "PROCEDURE" ARCCOSH(X); "VALUE" X; "REAL" X;
"CODE" 35115;
ARCCOSH : DELIVERS THE INVERSE HYPERBOLIC COSINE OF THE ARGUMENT X.
THE MEANING OF THE FORMAL PARAMETER IS :
X: <ARITHMETIC EXPRESSION>;
ENTRY: THE (REAL) ARGUMENT OF ARCCOSH(X), X >= 1.
PROCEDURES USED : NONE.
METHOD AND PERFORMANCE :
IF X = 1 THE VALUE 0 IS DELIVERED.
IF 1 < X <= "10 WE USE THE FORMULA :
ARCCOSH(X) = LN ( X + SQRT ( X * X - 1 ) ).
IF X > "10 WE USE THE FORMULA :
ARCCOSH(X) = LN(2) + LN ( X ).
THE VALUES ARE COMPUTED WITH A RELATIVE PRECISION OF ABOUT "-13.
IF X IS CLOSE TO 1, SAY X = 1+Y, Y>0, AND Y IS KNOWN IN GOOD
RELATIVE PRECISION, THEN IT IS ADVISED TO USE THE PROCEDURE
LOG ONE PLUS X (SEE SUBSECTION 6.4.3) BY WRITING
ARCCOSH(X) = LN( 1 + Y + SQRT( Y*(Y+2) ) ).
EXAMPLE : X = EXP(T), T > 0, T IS SMALL. THEN Y = EXP(T)-1 IS
AVAILABLE IN GOOD RELATIVE ACCURACY, Y = 2*EXP(T/2)*SINH(T/2).
EXAMPLE OF USE :
"BEGIN"
OUTPUT(61,"("/,D.14D")",ARCCOSH(COSH(0.01)));
OUTPUT(61,"("/,D.14D")",ARCCOSH(COSH(0.05)));
OUTPUT(61,"("/,D.14D")",COSH(ARCCOSH(1.01)));
OUTPUT(61,"("/,D.14D")",COSH(ARCCOSH(1.05)));
"END"
DELIVERS :
+0.00999999999958
+0.04999999999999
+1.01000000000000
+1.05000000000000
SUBSECTION : ARCTANH.
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"REAL" "PROCEDURE" ARCTANH(X); "VALUE" X; "REAL" X;
"CODE" 35116;
ARCTANH: DELIVERS THE INVERSE HYPERBOLIC TANGENT OF THE ARGUMENT X.
THE MEANING OF THE FORMAL PARAMETER IS :
X: <ARITHMETIC EXPRESSION>;
ENTRY: THE (REAL) ARGUMENT OF ARCTANH(X).
PROCEDURES USED : LOG ONE PLUS X = CP 35130,
GIANT = CP 30004.
METHOD AND PERFORMANCE :
IF ABS(X) < 1 WE USE THE PROCEDURE LOG ONE PLUS X (SEE SECTION
6.4.3) BY WRITING ARCTANH(X) = 0.5 * LN(( 1 + X )/( 1 - X ))=
0.5 * LN(1+2*X/(1-X)).
IF ABS(X) = 1 THE VALUE IS SIGN(X) * GIANT (SEE SECTION 6.2).
THE VALUES ARE COMPUTED WITH A RELATIVE PRECISION OF ABOUT "-13.
EXAMPLE OF USE :
"BEGIN"
OUTPUT(61,"("/,D.14D")",ARCTANH(TANH(0.01)));
OUTPUT(61,"("/,D.14D")",ARCTANH(TANH(0.05)));
OUTPUT(61,"("/,D.14D")",TANH(ARCTANH(0.05)));
OUTPUT(61,"("/,D.14D")",TANH(ARCTANH(0.01)));
"END"
DELIVERS :
+0.01000000000000
+0.05000000000000
+0.05000000000000
+0.01000000000000
SOURCE TEXTS :
"CODE" 35111;
"CODE" 35112;
"CODE" 35113;
"CODE" 35114;
"CODE" 35115;
"CODE" 35116;