CPROJ(3)

NAME
cproj - projection onto the Riemann sphere

SYNOPSIS
#include <complex.h>
double complex
cproj(double complex z);
long double complex
cprojl(long double complex z);
float complex
cprojf(float complex z);

DESCRIPTION
cproj(z) computes the projection of a complex floating-point number z onto the Riemann sphere: for any finite z, cproj(z) = z, but all complex infinities (including infinities with one NaN part) project to positive infinity on the real axis.

Specifically, if z = x + iy has an infinite part (one of x or y is infinity), then cproj(z) is equivalent to INFINITY + I*copysign(0.0,cimag(z)).

NOTE
cproj() projects onto the C99 "Riemann Sphere", which may not agree with the mathematical notion of the Riemann Sphere; in particular, it has two infinites (inf ± 0i) and four zeroes (±0 ± 0i).

SEE ALSO
complex(3)

STANDARDS
The cproj() function conforms to ISO/IEC 9899:2011.