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.