mirror of
https://git.planet-casio.com/Lephenixnoir/OpenLibm.git
synced 2025-01-01 06:23:39 +01:00
c977aa998f
Replace amos with slatec
39 lines
1.2 KiB
Fortran
39 lines
1.2 KiB
Fortran
*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
|