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)
58 : _M_re(__z._M_re), _M_im(__z._M_im) {}
100 static void _STLP_CALL _div(
const value_type& __z1_r,
const value_type& __z1_i,
101 const value_type& __z2_r,
const value_type& __z2_i,
102 value_type& __res_r, value_type& __res_i);
104 static void _STLP_CALL _div(
const value_type& __z1_r,
105 const value_type& __z2_r,
const value_type& __z2_i,
106 value_type& __res_r, value_type& __res_i);
108#if defined (_STLP_MEMBER_TEMPLATES)
116 template <
class _Tp2> _Self& operator-= (
const complex<_Tp2>& __z) {
122 template <
class _Tp2> _Self& operator*= (
const complex<_Tp2>& __z) {
130 template <
class _Tp2> _Self& operator/= (
const complex<_Tp2>& __z) {
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);
230 static void _STLP_CALL _div(
const float& __z1_r,
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>
269 _div(_M_re, _M_im, __z.
_M_re, __z.
_M_im, __r, __i);
306 _div(_M_re, _M_im, __z.
_M_re, __z.
_M_im, __r, __i);
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);
368 static void _STLP_CALL _div(
const double& __z1_r,
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>
407 _div(_M_re, _M_im, __z.
_M_re, __z.
_M_im, __r, __i);
444 _div(_M_re, _M_im, __z.
_M_re, __z.
_M_im, __r, __i);
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>
547 _div(_M_re, _M_im, __z.
_M_re, __z.
_M_im, __r, __i);
584 _div(_M_re, _M_im, __z.
_M_re, __z.
_M_im, __r, __i);
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) {}
782#if !defined (_STLP_NO_LONG_DOUBLE)
792#if !defined (_STLP_USE_NO_IOSTREAMS)
796# ifndef _STLP_INTERNAL_IOSFWD
804template <
class _Tp,
class _CharT,
class _Traits>
808template <
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 pow(const complex< float > &, int)
_STLP_DECLSPEC complex< float > _STLP_CALL sinh(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL cos(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL tan(const complex< float > &)
complex< _Tp > _STLP_CALL operator/(const _Tp &__x, const complex< _Tp > &__z)
complex< _Tp > _STLP_CALL operator-(const complex< _Tp > &__z)
_Tp _STLP_CALL norm(const complex< _Tp > &__z)
_STLP_DECLSPEC complex< float > _STLP_CALL cosh(const complex< float > &)
bool _STLP_CALL operator==(const complex< _Tp > &__z1, const complex< _Tp > &__z2)
_Tp _STLP_CALL imag(const complex< _Tp > &__z)
_STLP_DECLSPEC complex< float > _STLP_CALL sin(const complex< float > &)
complex< _Tp > _STLP_CALL polar(const _Tp &__rho)
_STLP_END_NAMESPACE _STLP_BEGIN_NAMESPACE basic_ostream< _CharT, _Traits > &_STLP_CALL operator<<(basic_ostream< _CharT, _Traits > &__os, const complex< _Tp > &__z)
_STLP_DECLSPEC complex< float > _STLP_CALL log10(const complex< float > &)
bool _STLP_CALL operator!=(const complex< _Tp > &__z1, const complex< _Tp > &__z2)
basic_istream< _CharT, _Traits > &_STLP_CALL operator>>(basic_istream< _CharT, _Traits > &__is, complex< _Tp > &__z)
_STLP_DECLSPEC complex< float > _STLP_CALL sqrt(const complex< float > &)
_STLP_DECLSPEC complex< float > _STLP_CALL tanh(const complex< float > &)
complex< _Tp > _STLP_CALL operator+(const complex< _Tp > &__z)
complex< _Tp > _STLP_CALL operator*(const _Tp &__x, const complex< _Tp > &__z)
complex< _Tp > _STLP_CALL conj(const complex< _Tp > &__z)
rope< _CharT, _Alloc > & operator+=(rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
#define _STLP_TEMPLATE_NULL
#define _STLP_OPERATOR_TEMPLATE
#define _STLP_CLASS_DECLSPEC
#define _STLP_BEGIN_NAMESPACE
#define _STLP_EXPORT_TEMPLATE
#define _STLP_END_NAMESPACE
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
static float(__cdecl *square_half_float)(float x
complex(value_type __x=0.0, value_type __y=0.0)
complex(const complex< double > &__z)
_Self & operator=(const _Self &__z)
complex(const complex< float > &__z)
complex(value_type __x=0.0f, value_type __y=0.0f)
_Self & operator=(const _Self &__z)
complex(const complex< long double > &__z)
_Self & operator=(const _Self &__z)
static void _STLP_CALL _div(const long double &__z1_r, const long double &__z2_r, const long double &__z2_i, long double &__res_r, long double &__res_i)
complex(value_type __x=0.0l, value_type __y=0.0l)
complex(const complex< float > &__z)
static void _STLP_CALL _div(const long double &__z1_r, const long double &__z1_i, const long double &__z2_r, const long double &__z2_i, long double &__res_r, long double &__res_i)
complex(const complex< double > &__z)
complex< long double > _Self
complex(const _Self &__z)
_Self & operator=(const _Self &__z)
complex(const value_type &__x)
complex(const value_type &__x, const value_type &__y)
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)