home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
octave-1.1.1p1-src.tgz
/
tar.out
/
fsf
/
octave
/
libcruft
/
slatec-fn
/
dacosh.f
< prev
next >
Wrap
Text File
|
1996-09-28
|
1KB
|
41 lines
*DECK DACOSH
DOUBLE PRECISION FUNCTION DACOSH (X)
C***BEGIN PROLOGUE DACOSH
C***PURPOSE Compute the arc hyperbolic cosine.
C***LIBRARY SLATEC (FNLIB)
C***CATEGORY C4C
C***TYPE DOUBLE 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 DACOSH(X) calculates the double precision arc hyperbolic cosine for
C double precision argument X. The result is returned on the
C positive branch.
C
C***REFERENCES (NONE)
C***ROUTINES CALLED D1MACH, XERMSG
C***REVISION HISTORY (YYMMDD)
C 770601 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***END PROLOGUE DACOSH
DOUBLE PRECISION X, DLN2, XMAX, D1MACH
SAVE DLN2, XMAX
DATA DLN2 / 0.6931471805 5994530941 7232121458 18 D0 /
DATA XMAX / 0.D0 /
C***FIRST EXECUTABLE STATEMENT DACOSH
IF (XMAX.EQ.0.D0) XMAX = 1.0D0/SQRT(D1MACH(3))
C
IF (X .LT. 1.D0) CALL XERMSG ('SLATEC', 'DACOSH',
+ 'X LESS THAN 1', 1, 2)
C
IF (X.LT.XMAX) DACOSH = LOG (X+SQRT(X*X-1.0D0))
IF (X.GE.XMAX) DACOSH = DLN2 + LOG(X)
C
RETURN
END