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_ru(x): if x < 0: return -tanh_rd(-x) if x == fpu.infinity: return 1.0 s, c = crlibm.sinh_ru(x), crlibm.cosh_rd(x) if fpu.infinity in (s, c): return 1.0 return fpu.up(lambda: s / c)
def tanh_ru(x): if x < 0: return -tanh_rd(-x) if x == fpu.infinity: return 1.0 s, c = crlibm.sinh_ru(x), crlibm.cosh_rd(x) if fpu.infinity in (s, c): return 1.0 return fpu.up(lambda: s/c)