Implementation status: to be implemented


#include <complex.h>

double complex cproj(double complex z);
float complex cprojf(float complex z);
long double complex cprojl(long double complex z);


The 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))

Return value

These functions return the value of the projection onto the Riemann sphere.


No errors are defined.

Implementation tasks

  • Implement the functions: cproj(), cprojf() and cprojl(),