dacosh.f
534 Bytes
double precision function dacosh (x)
c june 1977 edition. w. fullerton, c3, los alamos scientific lab.
double precision x, dln2, xmax, d1mach, dlog, dsqrt
external d1mach
data dln2 / 0.6931471805 5994530941 7232121458 18 d0 /
data xmax / 0.d0 /
c
if (xmax.eq.0.d0) xmax = 1.0d0/dsqrt(d1mach(3))
c
if (x.lt.1.d0) call seteru (21hdacosh x less than 1, 21, 1, 2)
c
if (x.lt.xmax) dacosh = dlog (x+dsqrt(x*x-1.0d0))
if (x.ge.xmax) dacosh = dln2 + dlog(x)
c
return
end