18 #ifndef _STLP_INTERNAL_COMPLEX 19 #define _STLP_INTERNAL_COMPLEX 29 #ifndef _STLP_INTERNAL_CMATH 55 #if defined (_STLP_MEMBER_TEMPLATES) && defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 108 #if defined (_STLP_MEMBER_TEMPLATES) // && defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 186 : _M_re(__x), _M_im(__y) {}
191 #ifndef _STLP_NO_LONG_DOUBLE 226 static void _STLP_CALL _div(
const float& __z1_r,
const float& __z1_i,
227 const float& __z2_r,
const float& __z2_i,
228 float& __res_r,
float& __res_i);
231 const float& __z2_r,
const float& __z2_i,
232 float& __res_r,
float& __res_i);
234 #if defined (_STLP_MEMBER_TEMPLATES) 235 template <
class _Tp2>
242 template <
class _Tp2>
249 template <
class _Tp2>
256 template <
class _Tp2>
258 float __r = _M_re * __z.
_M_re - _M_im * __z.
_M_im;
259 float __i = _M_re * __z.
_M_im + _M_im * __z.
_M_re;
265 template <
class _Tp2>
325 : _M_re(__x), _M_im(__y) {}
328 : _M_re(__z._M_re), _M_im(__z._M_im) {}
330 #if !defined (_STLP_NO_LONG_DOUBLE) 365 static void _STLP_CALL _div(
const double& __z1_r,
const double& __z1_i,
366 const double& __z2_r,
const double& __z2_i,
367 double& __res_r,
double& __res_i);
369 const double& __z2_r,
const double& __z2_i,
370 double& __res_r,
double& __res_i);
372 #if defined (_STLP_MEMBER_TEMPLATES) && defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 373 template <
class _Tp2>
380 template <
class _Tp2>
387 template <
class _Tp2>
394 template <
class _Tp2>
396 double __r = _M_re * __z.
_M_re - _M_im * __z.
_M_im;
397 double __i = _M_re * __z.
_M_im + _M_im * __z.
_M_re;
403 template <
class _Tp2>
455 #if !defined (_STLP_NO_LONG_DOUBLE) 464 : _M_re(__x), _M_im(__y) {}
467 : _M_re(__z._M_re), _M_im(__z._M_im) {}
503 static void _STLP_CALL _div(
const long double& __z1_r,
const long double& __z1_i,
504 const long double& __z2_r,
const long double& __z2_i,
505 long double& __res_r,
long double& __res_i);
508 const long double& __z2_r,
const long double& __z2_i,
509 long double& __res_r,
long double& __res_i);
511 # if defined (_STLP_MEMBER_TEMPLATES) && defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 513 template <
class _Tp2>
520 template <
class _Tp2>
527 template <
class _Tp2>
534 template <
class _Tp2>
536 long double __r = _M_re * __z.
_M_re - _M_im * __z.
_M_im;
537 long double __i = _M_re * __z.
_M_im + _M_im * __z.
_M_re;
543 template <
class _Tp2>
601 : _M_re((
float)__z._M_re), _M_im((
float)__z._M_im) {}
603 : _M_re(__z._M_re), _M_im(__z._M_im) {}
604 #ifndef _STLP_NO_LONG_DOUBLE 606 : _M_re((
float)__z._M_re), _M_im((
float)__z._M_im) {}
610 : _M_re(__z._M_re), _M_im(__z._M_im) {}
612 : _M_re(__z._M_re), _M_im(__z._M_im) {}
701 {
return __z.
_M_re == __x && __z.
_M_im == 0; }
705 {
return __x == __z.
_M_re && 0 == __z.
_M_im; }
719 {
return __z.
_M_re != __x || __z.
_M_im != 0; }
723 {
return __x != __z.
_M_re || 0 != __z.
_M_im; }
728 {
return __z.
_M_re; }
732 {
return __z.
_M_im; }
782 #if !defined (_STLP_NO_LONG_DOUBLE) 792 #if !defined (_STLP_USE_NO_IOSTREAMS) 796 # ifndef _STLP_INTERNAL_IOSFWD 804 template <
class _Tp,
class _CharT,
class _Traits>
808 template <
class _Tp,
class _CharT,
class _Traits>
830 # if !defined (_STLP_NO_LONG_DOUBLE) 841 # if defined (_STLP_USE_TEMPLATE_EXPORT) && ! defined (_STLP_NO_WCHAR_T) 852 # if !defined (_STLP_NO_LONG_DOUBLE) 904 #if !defined (_STLP_NO_LONG_DOUBLE) 927 #ifndef _STLP_LINK_TIME_INSTANTIATION _STLP_DECLSPEC complex< float > _STLP_CALL sqrt(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL sinh(const complex< float > &)
complex(const value_type &__x)
_STLP_DECLSPEC complex< float > _STLP_CALL pow(const complex< float > &, int)
static void _STLP_CALL _div(const value_type &__z1_r, const value_type &__z1_i, const value_type &__z2_r, const value_type &__z2_i, value_type &__res_r, value_type &__res_i)
_STLP_DECLSPEC complex< float > _STLP_CALL cosh(const complex< float > &)
complex< _Tp > _STLP_CALL operator *(const _Tp &__x, const complex< _Tp > &__z)
_Tp _STLP_CALL norm(const complex< _Tp > &__z)
complex< _Tp > _STLP_CALL operator-(const complex< _Tp > &__z)
_STLP_END_NAMESPACE _STLP_BEGIN_NAMESPACE basic_ostream< _CharT, _Traits > &_STLP_CALL operator<<(basic_ostream< _CharT, _Traits > &__os, const complex< _Tp > &__z)
_Tp _STLP_CALL real(const complex< _Tp > &__z)
_Tp _STLP_CALL arg(const complex< _Tp > &__z)
#define _STLP_EXPORT_TEMPLATE
_Self & operator/=(const value_type &__x)
_Tp _STLP_CALL imag(const complex< _Tp > &__z)
_Self & operator=(const _Self &__z)
_Tp _STLP_CALL abs(const complex< _Tp > &__z)
_STLP_DECLSPEC complex< float > _STLP_CALL tanh(const complex< float > &)
complex< _Tp > _STLP_CALL conj(const complex< _Tp > &__z)
complex(const complex< float > &__z)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
_STLP_DECLSPEC complex< float > _STLP_CALL cos(const complex< float > &)
_Self & operator=(const _Self &__z)
_Self & operator=(const _Self &__z)
complex< _Tp > _STLP_CALL polar(const _Tp &__rho)
complex< long double > _Self
bool _STLP_CALL operator!=(const complex< _Tp > &__z1, const complex< _Tp > &__z2)
complex(value_type __x=0.0l, value_type __y=0.0l)
_STLP_DECLSPEC complex< float > _STLP_CALL log10(const complex< float > &)
complex(value_type __x=0.0, value_type __y=0.0)
complex(const value_type &__x, const value_type &__y)
_Self & operator-=(const value_type &__x)
#define _STLP_OPERATOR_TEMPLATE
complex(const complex< long double > &__z)
#define _STLP_CLASS_DECLSPEC
_STLP_DECLSPEC complex< float > _STLP_CALL exp(const complex< float > &)
#define _STLP_TEMPLATE_NULL
_STLP_DECLSPEC complex< float > _STLP_CALL log(const complex< float > &)
basic_istream< _CharT, _Traits > &_STLP_CALL operator>>(basic_istream< _CharT, _Traits > &__is, complex< _Tp > &__z)
rope< _CharT, _Alloc > & operator+=(rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
_Self & operator *=(const value_type &__x)
static float(__cdecl *square_half_float)(float x
complex(value_type __x=0.0f, value_type __y=0.0f)
#define _STLP_END_NAMESPACE
complex< _Tp > _STLP_CALL operator+(const complex< _Tp > &__z)
bool _STLP_CALL operator==(const complex< _Tp > &__z1, const complex< _Tp > &__z2)
#define _STLP_BEGIN_NAMESPACE
_STLP_DECLSPEC complex< float > _STLP_CALL sin(const complex< float > &)
_Self & operator+=(const value_type &__x)
complex< _Tp > _STLP_CALL operator/(const _Tp &__x, const complex< _Tp > &__z)
complex(const complex< double > &__z)
_STLP_DECLSPEC complex< float > _STLP_CALL tan(const complex< float > &)
_Self & operator=(const _Self &__z)
complex(const _Self &__z)