std::complex
| Defined in header
<complex>
|
||
| template< class T >
class complex; //not defined |
(1) | |
| template<> class complex<float>;
|
(2) | |
| template<> class complex<double>;
|
(3) | |
| template<> class complex<long double>;
|
(4) | |
The specializations std::complex<float>, std::complex<double>, and std::complex<long double> are literal types for representing and manipulating complex numbers.
The effect of instantiating the template complex for any other type is unspecified.
Contents |
[edit] Member types
| Member type | Definition |
value_type
|
T
|
[edit] Member functions
| constructs a complex number (public member function) |
|
| assigns the contents (public member function) |
|
| accesses the real part of the complex number (public member function) |
|
| accesses the imaginary part of the complex number (public member function) |
|
| compound assignment of two complex numbers or a complex and a scalar (public member function) |
|
[edit] Non-member functions
| applies unary operators to complex numbers (function template) |
|
| performs complex number arithmetics on two complex values or a complex and a scalar (function template) |
|
| compares two complex numbers or a complex and a scalar (function template) |
|
| serializes and deserializes a complex number (function template) |
|
| returns the real component (function template) |
|
| returns the imaginary component (function template) |
|
| returns the magnitude of a complex number (function template) |
|
| returns the phase angle (function template) |
|
| returns the squared magnitude (function template) |
|
| returns the complex conjugate (function template) |
|
| (C++11)
|
returns the projection onto the Riemann sphere (function template) |
| constructs a complex number from magnitude and phase angle (function template) |
|
Exponential functions |
|
| complex base e exponential (function template) |
|
| complex natural logarithm with the branch cuts along the negative real axis (function template) |
|
| complex common logarithm with the branch cuts along the negative real axis (function template) |
|
Power functions |
|
| complex power, one or both arguments may be a complex number (function template) |
|
| complex square root in the range of the right half-plane (function template) |
|
Trigonometric functions |
|
| computes sine of a complex number (sin(z)) (function template) |
|
| computes cosine of a complex number (cos(z)) (function template) |
|
| computes tangent of a complex number (tan(z)) (function template) |
|
| (C++11)
|
computes arc sine of a complex number (arcsin(z)) (function template) |
| (C++11)
|
computes arc cosine of a complex number (arccos(z)) (function template) |
| (C++11)
|
computes arc tangent of a complex number (arctan(z)) (function template) |
Hyperbolic functions |
|
| computes hyperbolic sine of a complex number (sh(z)) (function template) |
|
| computes hyperbolic cosine of a complex number (ch(z)) (function template) |
|
| computes hyperbolic tangent of a complex number (function template) |
|
| (C++11)
|
computes hyperbolic arc sine of a complex number (function template) |
| (C++11)
|
computes hyperbolic arc cosine of a complex number (function template) |
| (C++11)
|
computes hyperbolic arc tangent of a complex number (function template) |
[edit] Non-static data members
For any complex number z, reinterpret_cast<T(&)[2]>(z)[0] is the real part of z and reinterpret_cast<T(&)[2]>(z)[1] is the imaginary part of z.
For any pointer to an element of an array of complex numbers p and any valid array index i, reinterpret_cast<T*>(p)[2*i] is the real part of the complex number p[i], and reinterpret_cast<T*>(p)[2*i + 1] is the imaginary part of the complex number p[i]
These requirements essentially limit implementation of each of the three specializations of std::complex to declaring two and only two non-static data members, of type value_type, with the same member access, which hold the real and the imaginary components, respectively.