Include the standard header <complex.h>
to define several macros and a host of functions for use with the three
complex arithmetic types float _Complex, double _Complex,
and long double _Complex.
(If you include this header in a C++ program,
these three types are
effectively replaced by complex<float>,
complex<double>, and complex<long double>,
respectively.)
Unless otherwise specified,
functions that can return multiple values return an imaginary
part in the half-open interval (-pi, pi].

without regard to possible intermediate overflow. The parameter OFF
has the same effect as DEFAULT; it restores the original state where
such latitude is not permitted. If the pragma occurs outside an external declaration,
it remains in effect until overridden by another such pragma. If the pragma occurs
inside an external declaration, it must precede all explicit declarations and
statements within a compound statement. It remains in effect until overridden by
another such pragma or until the end of the compound statement.

The function returns a projection of left onto the Riemann
sphere. Specifically, if either component of left is an
infinity of either sign, the function returns a value whose real part is
positive infinity and whose imaginary part is zero with the same sign
as the imaginary part of left. Otherwise, the function returns
left.

The function returns a projection of left onto the Riemann
sphere. Specifically, if either component of left is an
infinity of either sign, the function returns a value whose real part is
positive infinity and whose imaginary part is zero with the same sign
as the imaginary part of left. Otherwise, the function returns
left.