123456789101112131415161718192021222324252627282930313233343536373839 |
- *DECK ACOSH
- FUNCTION ACOSH (X)
- C***BEGIN PROLOGUE ACOSH
- C***PURPOSE Compute the arc hyperbolic cosine.
- C***LIBRARY SLATEC (FNLIB)
- C***CATEGORY C4C
- C***TYPE SINGLE PRECISION (ACOSH-S, DACOSH-D, CACOSH-C)
- C***KEYWORDS ACOSH, ARC HYPERBOLIC COSINE, ELEMENTARY FUNCTIONS, FNLIB,
- C INVERSE HYPERBOLIC COSINE
- C***AUTHOR Fullerton, W., (LANL)
- C***DESCRIPTION
- C
- C ACOSH(X) computes the arc hyperbolic cosine of X.
- C
- C***REFERENCES (NONE)
- C***ROUTINES CALLED R1MACH, XERMSG
- C***REVISION HISTORY (YYMMDD)
- C 770401 DATE WRITTEN
- C 890531 Changed all specific intrinsics to generic. (WRB)
- C 890531 REVISION DATE from Version 3.2
- C 891214 Prologue converted to Version 4.0 format. (BAB)
- C 900315 CALLs to XERROR changed to CALLs to XERMSG. (THJ)
- C 900326 Removed duplicate information from DESCRIPTION section.
- C (WRB)
- C***END PROLOGUE ACOSH
- SAVE ALN2,XMAX
- DATA ALN2 / 0.6931471805 5994530942E0/
- DATA XMAX /0./
- C***FIRST EXECUTABLE STATEMENT ACOSH
- IF (XMAX.EQ.0.) XMAX = 1.0/SQRT(R1MACH(3))
- C
- IF (X .LT. 1.0) CALL XERMSG ('SLATEC', 'ACOSH', 'X LESS THAN 1',
- + 1, 2)
- C
- IF (X.LT.XMAX) ACOSH = LOG (X + SQRT(X*X-1.0))
- IF (X.GE.XMAX) ACOSH = ALN2 + LOG(X)
- C
- RETURN
- END
|