Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
Miscellaneous
Miscellaneous
complex
exception
functional
iterator
limits
locale
memory
new
numeric
stdexcept
typeinfo
utility
valarray
complex
abs
arg
complex
conj
cos
cosh
exp
imag
log
log10
norm
polar
pow
real
sin
sinh
sqrt
tan
tanh
complex
complex::complex
complex operators
member functions:
complex::imag
complex::real
member types:
complex::value_type


complex

class template
<complex>
template <class T> class complex;

Complex number class

The complex class is designed to hold two components of the same type, that conform a complex number.

A complex number is formed by adding an imaginary part to a real number:

x + y * i

The imaginary part (y*i) is a factor of i, known as the imaginary unit, and which satisfies that:

i2 = -1

In this class, complex numbers have two components: real (corresponding to x in the above example) and imag (corresponding to y). This way of referring to complex numbers by two real components is known and cartesian, because this way they have the ability to be easily representable on a cartesian axis.

The class has been implemented to provide as similar a functionality as the one of a numerical type when this was possible, therefore, complex objects can be assigned, compared, inserted and extracted, as well as several arithmetical operators have been overloaded to be used on them directly.

Members


The class also includes an alias type of the template argument:

complex specializations

complex is specialized for the three fundamental floating-point types: float, double and long double.

These specializations have the same members as the template, but optimize its implementation for these fundamental types, as well as they allow operations with other instantiations of complex (complex objects with different template argument).