_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); } }
_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 cos(const complex<float>& z) { return complex<float>(_STLP_COSF(z._M_re) * _STLP_COSHF(z._M_im), -_STLP_SINF(z._M_re) * _STLP_SINHF(z._M_im)); }
// Construct a complex number from polar representation _STLP_TEMPLATE_NULL _STLP_DECLSPEC complex<float> _STLP_CALL polar(const float& __rho, const float& __phi) { return complex<float>(__rho * _STLP_COSF(__phi), __rho * _STLP_SINF(__phi)); }