[complex.syn] # 29 Numerics library [[numerics]](./#numerics) ## 29.4 Complex numbers [[complex.numbers]](complex.numbers#complex.syn) ### 29.4.2 Header synopsis [complex.syn] [🔗](#header:%3ccomplex%3e) namespace std {// [[complex]](complex "29.4.3 Class template complex"), class template complextemplate class complex; // [[complex.ops]](complex.ops "29.4.6 Non-member operations"), operatorstemplate constexpr complex operator+(const complex&, const complex&); template constexpr complex operator+(const complex&, const T&); template constexpr complex operator+(const T&, const complex&); template constexpr complex operator-(const complex&, const complex&); template constexpr complex operator-(const complex&, const T&); template constexpr complex operator-(const T&, const complex&); template constexpr complex operator*(const complex&, const complex&); template constexpr complex operator*(const complex&, const T&); template constexpr complex operator*(const T&, const complex&); template constexpr complex operator/(const complex&, const complex&); template constexpr complex operator/(const complex&, const T&); template constexpr complex operator/(const T&, const complex&); template constexpr complex operator+(const complex&); template constexpr complex operator-(const complex&); template constexpr bool operator==(const complex&, const complex&); template constexpr bool operator==(const complex&, const T&); template basic_istream& operator>>(basic_istream&, complex&); template basic_ostream& operator<<(basic_ostream&, const complex&); // [[complex.value.ops]](complex.value.ops "29.4.7 Value operations"), valuestemplate constexpr T real(const complex&); template constexpr T imag(const complex&); template constexpr T abs(const complex&); template constexpr T arg(const complex&); template constexpr T norm(const complex&); template constexpr complex conj(const complex&); template constexpr complex proj(const complex&); template constexpr complex polar(const T&, const T& = T()); // [[complex.transcendentals]](complex.transcendentals "29.4.8 Transcendentals"), transcendentalstemplate constexpr complex acos(const complex&); template constexpr complex asin(const complex&); template constexpr complex atan(const complex&); template constexpr complex acosh(const complex&); template constexpr complex asinh(const complex&); template constexpr complex atanh(const complex&); template constexpr complex cos (const complex&); template constexpr complex cosh (const complex&); template constexpr complex exp (const complex&); template constexpr complex log (const complex&); template constexpr complex log10(const complex&); template constexpr complex pow (const complex&, const T&); template constexpr complex pow (const complex&, const complex&); template constexpr complex pow (const T&, const complex&); template constexpr complex sin (const complex&); template constexpr complex sinh (const complex&); template constexpr complex sqrt (const complex&); template constexpr complex tan (const complex&); template constexpr complex tanh (const complex&); // [[complex.tuple]](complex.tuple "29.4.9 Tuple interface"), tuple interfacetemplate struct tuple_size; template struct tuple_element; template struct tuple_size>; template struct tuple_element>; templateconstexpr T& get(complex&) noexcept; templateconstexpr T&& get(complex&&) noexcept; templateconstexpr const T& get(const complex&) noexcept; templateconstexpr const T&& get(const complex&&) noexcept; // [[complex.literals]](complex.literals "29.4.11 Suffixes for complex number literals"), complex literalsinline namespace literals {inline namespace complex_literals {constexpr complex operator""il(long double); constexpr complex operator""il(unsigned long long); constexpr complex operator""i(long double); constexpr complex operator""i(unsigned long long); constexpr complex operator""if(long double); constexpr complex operator""if(unsigned long long); }}}