abs · arg · complex · complex<double> · complex<float> · complex<long double> · conjg ·
cos · cosh · exp · imag · log · log10 · norm · operator!= · operator* · operator+ ·
operator- · operator/ · operator<< · operator== · operator>> · polar · pow · real · sin ·
sinh · sqrt · __STD_COMPLEX
namespace std {
#define __STD_COMPLEX
// TEMPLATE CLASSES
template<class T>
class complex;
class complex<float>;
class complex<double>;
class complex<long double>;
// TEMPLATE FUNCTIONS
template<class T>
complex<T> operator+(const complex<T>& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator+(const complex<T>& lhs, const T& rhs);
template<class T>
complex<T> operator+(const T& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator-(const complex<T>& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator-(const complex<T>& lhs, const T& rhs);
template<class T>
complex<T> operator-(const T& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator*(const complex<T>& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator*(const complex<T>& lhs, const T& rhs);
template<class T>
complex<T> operator*(const T& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator/(const complex<T>& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator/(const complex<T>& lhs, const T& rhs);
template<class T>
complex<T> operator/(const T& lhs, const complex<T>& rhs);
template<class T>
complex<T> operator+(const complex<T>& lhs);
template<class T>
complex<T> operator-(const complex<T>& lhs);
template<class T>
bool operator==(const complex<T>& lhs, const complex<T>& rhs);
template<class T>
bool operator==(const complex<T>& lhs, const T& rhs);
template<class T>
bool operator==(const T& lhs, const complex<T>& rhs);
template<class T>
bool operator!=(const complex<T>& lhs, const complex<T>& rhs);
template<class T>
bool operator!=(const complex<T>& lhs, const T& rhs);
template<class T>
bool operator!=(const T& lhs, const complex<T>& rhs);
template<class E, class Ti, class T>
basic_istream<E, Ti>& operator>>(basic_istream<E, Ti>& is,
complex<T>& x);
template<class E, class T, class U>
basic_ostream<E, T>& operator<<(basic_ostream<E, T>& os,
const complex<U>& x);
template<class T>
T real(const complex<T>& x);
template<class T>
T imag(const complex<T>& x);
template<class T>
T abs(const complex<T>& x);
template<class T>
T arg(const complex<T>& x);
template<class T>
T norm(const complex<T>& x);
template<class T>
complex<T> conjg(const complex<T>& x);
template<class T>
complex<T> polar(const T& rho, const T& theta = 0);
template<class T>
complex<T> cos(const complex<T>& x);
template<class T>
complex<T> cosh(const complex<T>& x);
template<class T>
complex<T> exp(const complex<T>& x);
template<class T>
complex<T> log(const complex<T>& x);
template<class T>
complex<T> log10(const complex<T>& x);
template<class T>
complex<T> pow(const complex<T>& x, int y);
template<class T>
complex<T> pow(const complex<T>& x, const T& y);
template<class T>
complex<T> pow(const complex<T>& x, const complex<T>& y);
template<class T>
complex<T> pow(const T& x, const complex<T>& y);
template<class T>
complex<T> sin(const complex<T>& x);
template<class T>
complex<T> sinh(const complex<T>& x);
template<class T>
complex<T> sqrt(const complex<T>& x);
};
Include the standard header <complex> to define template class complex and a host of supporting template functions.
Unless otherwise specified, functions that can return multiple values return an imaginary part in the half-open interval
(-pi, pi].