_STLP_EXP_DECLSPEC complex<float> _STLP_CALL tanh(const complex<float>& z) { float re2 = 2.f * z._M_re; float im2 = 2.f * z._M_im; #if defined(__LIBSTD_CPP_SYMBIAN32_WSD__) || defined(_STLP_LIBSTD_CPP_NO_STATIC_VAR_) if (_STLP_ABSF(re2) > get_complex_trig_float_limit()) # else if (_STLP_ABSF(re2) > float_limit) # endif //__LIBSTD_CPP_SYMBIAN32_WSD__ return complex<float>((re2 > 0 ? 1.f : -1.f), 0.f); else { float den = _STLP_COSHF(re2) + _STLP_COSF(im2); return complex<float>(_STLP_SINHF(re2) / den, _STLP_SINF(im2) / den); } }
_STLP_DECLSPEC complex<float> _STLP_CALL tanh(const complex<float>& z) { float re2 = 2.f * z._M_re; float im2 = 2.f * z._M_im; if (_STLP_ABSF(re2) > float_limit) return complex<float>((re2 > 0 ? 1.f : -1.f), 0.f); else { float den = _STLP_COSHF(re2) + _STLP_COSF(im2); return complex<float>(_STLP_SINHF(re2) / den, _STLP_SINF(im2) / den); } }