[Cfp-interest 3335] The 'cproj' routine - 7.3.9.5

Damian McGuckin damianm at esi.com.au
Sun Nov 24 21:04:48 PST 2024


The following simpler text is suggested for 7.3.9.5, the cproj 
routines:

7.3.9.5#2

 	The cproj functions map z to itself except where z has an infinite
 	real or imaginary part (even if the other part is a NaN), in which
 	case cproj(z) is equivalent to

                 CMPLX(INFINITY, copysign(0.0, imag(z)))

7.3.9.5#3

 	The cproj functions return their argument unless that argument has
 	an infinite part ,in which case they return a complex floating
 	value with infinite real part and zero imaginary part.

Rationale:

 	The cproj functions capture the spirit of the mathematical mapping
 	onto the complex plane extended by a single point at infinity.
 	They perform the simple task of mapping any argument with an
 	infinite part into one of two canonical values that compare equal,
 	mapping any other argument to itself.

 	This is known to be mathematically equivalent to mapping the
 	argument onto a unit sphere in 3-space whose south pole is zero
 	and whose north pole is the single point at infinity.  However
 	this sphere, the Riemann sphere mentioned in the current wording
 	of 7.3.9.5#2, has nothing to do with the cproj function itself and
 	is misleading to the reader. This change removes the references to
 	the Riemann sphere.

 	This proposal requires no implementation changes.

Thanks - Damian


More information about the Cfp-interest mailing list