def cosh(c): "Hyberbolic cosine." if c.inf > 0: return (crlibm.cosh_rd(c.inf), crlibm.cosh_ru(c.sup)), if c.sup < 0: return (crlibm.cosh_rd(c.sup), crlibm.cosh_ru(c.inf)), else: return (1.0, fpu.max(crlibm.cosh_ru(x) for x in c)),
def tanh_rd(x): if x < 0: return -tanh_ru(-x) if x == fpu.infinity: return 1.0 s, c = crlibm.sinh_rd(x), crlibm.cosh_ru(x) if fpu.infinity in (s, c): return one_rd return fpu.down(lambda: s / c)
def tanh_rd(x): if x < 0: return -tanh_ru(-x) if x == fpu.infinity: return 1.0 s, c = crlibm.sinh_rd(x), crlibm.cosh_ru(x) if fpu.infinity in (s, c): return one_rd return fpu.down(lambda: s/c)