cproj, cprojf,
  cprojl —
complex projection functions
#include <complex.h>
double
  
  cproj(double
    complex z);
float
  
  cprojf(float
    complex z);
long double
  
  cprojl(long
    double complex z);
#include
    <tgmath.h>
complex-floating
  
  cproj(complex-floating
    z);
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() shall be equivalent to:
INFINITY + I * copysign(0.0, cimag(z))
 
These functions return the value of the projection onto the Riemann sphere.
Portions of this text are reprinted and reproduced in electronic form from IEEE
  Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
  Operating System Interface (POSIX), The Open Group Base Specifications Issue
  6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
  Engineers, Inc and The Open Group. In the event of any discrepancy between
  this version and the original IEEE and The Open Group Standard, the original
  IEEE and The Open Group Standard is the referee document. The original
  Standard can be obtained online at http://www.opengroup.org/unix/online.html .