4.1 Complex assignment and promotion
Just as integers may be assigned to real variables, real variables may be assigned to complex numbers, with the result being a zero imaginary component.
int n = 5; // n = 5
real x = a; // x = 5.0
complex z1 = n; // z = 5.0 + 0.0i
complex z2 = x; // z = 5.0 + 0.0i
4.1.1 Complex function arguments
Function arguments of type int
or real
may be promoted to type
complex
. The complex version of functions in this chapter are only
used if one of the arguments is complex. For example, if z
is
complex, then pow(z, 2)
will call the complex version of the power
function and the integer 2 will be promoted to a complex number with a
real component of 2 and an imaginary component of 0. The same goes
for binary operators like addition and subtraction, where z + 2
will
be legal and produce a complex result. Functions such as arg
and
conj
that are only available for complex numbers can accept integer
or real arguments, promoting them to complex
before applying the
function.