improve cosh/sinh (much simpler, and support huge exponents)