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 >
Text File  |  1996-09-28  |  1KB  |  41 lines

  1. *DECK DACOSH
  2.       DOUBLE PRECISION FUNCTION DACOSH (X)
  3. C***BEGIN PROLOGUE  DACOSH
  4. C***PURPOSE  Compute the arc hyperbolic cosine.
  5. C***LIBRARY   SLATEC (FNLIB)
  6. C***CATEGORY  C4C
  7. C***TYPE      DOUBLE PRECISION (ACOSH-S, DACOSH-D, CACOSH-C)
  8. C***KEYWORDS  ACOSH, ARC HYPERBOLIC COSINE, ELEMENTARY FUNCTIONS, FNLIB,
  9. C             INVERSE HYPERBOLIC COSINE
  10. C***AUTHOR  Fullerton, W., (LANL)
  11. C***DESCRIPTION
  12. C
  13. C DACOSH(X) calculates the double precision arc hyperbolic cosine for
  14. C double precision argument X.  The result is returned on the
  15. C positive branch.
  16. C
  17. C***REFERENCES  (NONE)
  18. C***ROUTINES CALLED  D1MACH, XERMSG
  19. C***REVISION HISTORY  (YYMMDD)
  20. C   770601  DATE WRITTEN
  21. C   890531  Changed all specific intrinsics to generic.  (WRB)
  22. C   890531  REVISION DATE from Version 3.2
  23. C   891214  Prologue converted to Version 4.0 format.  (BAB)
  24. C   900315  CALLs to XERROR changed to CALLs to XERMSG.  (THJ)
  25. C***END PROLOGUE  DACOSH
  26.       DOUBLE PRECISION X, DLN2, XMAX,  D1MACH
  27.       SAVE DLN2, XMAX
  28.       DATA DLN2 / 0.6931471805 5994530941 7232121458 18 D0 /
  29.       DATA XMAX / 0.D0 /
  30. C***FIRST EXECUTABLE STATEMENT  DACOSH
  31.       IF (XMAX.EQ.0.D0) XMAX = 1.0D0/SQRT(D1MACH(3))
  32. C
  33.       IF (X .LT. 1.D0) CALL XERMSG ('SLATEC', 'DACOSH',
  34.      +   'X LESS THAN 1', 1, 2)
  35. C
  36.       IF (X.LT.XMAX) DACOSH = LOG (X+SQRT(X*X-1.0D0))
  37.       IF (X.GE.XMAX) DACOSH = DLN2 + LOG(X)
  38. C
  39.       RETURN
  40.       END
  41.