[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