### 2.16 `cproj`, `cprojf`— Riemann sphere projection

Synopsis

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

Description
These functions compute a projection of z onto the Riemann sphere: z projects to z except that all complex infinities (even those with one infinite part and one NaN part) project to positive infinity on the real axis. If z has an infinite part, then `cproj`(z) is equivalent to

INFINITY + I * copysign(0.0, cimag(z))

`cprojf` is identical to `cproj`, except that it performs its calculations on `floats complex`.

Returns
The cproj functions return the value of the projection onto the Riemann sphere.

Portability
`cproj` and `cprojf` are ISO C99