cproj.3p (3528B)
- '\" et
- .TH CPROJ "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- This manual page is part of the POSIX Programmer's Manual.
- The Linux implementation of this interface may differ (consult
- the corresponding Linux manual page for details of Linux behavior),
- or the interface may not be implemented on Linux.
- .\"
- .SH NAME
- cproj,
- cprojf,
- cprojl
- \(em complex projection functions
- .SH SYNOPSIS
- .LP
- .nf
- #include <complex.h>
- .P
- double complex cproj(double complex \fIz\fP);
- float complex cprojf(float complex \fIz\fP);
- long double complex cprojl(long double complex \fIz\fP);
- .fi
- .SH DESCRIPTION
- The functionality described on this reference page is aligned with the
- ISO\ C standard. Any conflict between the requirements described here and the
- ISO\ C standard is unintentional. This volume of POSIX.1\(hy2017 defers to the ISO\ C standard.
- .P
- These functions shall compute a projection of
- .IR z
- onto the Riemann sphere:
- .IR z
- projects to
- .IR 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
- .IR z
- has an infinite part, then
- .IR cproj (\c
- .IR z )
- shall be equivalent to:
- .sp
- .RS 4
- .nf
- INFINITY + I * copysign(0.0, cimag(z))
- .fi
- .P
- .RE
- .SH "RETURN VALUE"
- These functions shall return the value of the projection onto the
- Riemann sphere.
- .SH ERRORS
- No errors are defined.
- .LP
- .IR "The following sections are informative."
- .SH EXAMPLES
- None.
- .SH "APPLICATION USAGE"
- None.
- .SH RATIONALE
- Two topologies are commonly used in complex mathematics: the complex
- plane with its continuum of infinities, and the Riemann sphere with its
- single infinity. The complex plane is better suited for transcendental
- functions, the Riemann sphere for algebraic functions. The complex
- types with their multiplicity of infinities provide a useful (though
- imperfect) model for the complex plane. The
- \fIcproj\fR()
- function helps model the Riemann sphere by mapping all infinities to
- one, and should be used just before any operation, especially
- comparisons, that might give spurious results for any of the other
- infinities. Note that a complex value with one infinite part and one
- NaN part is regarded as an infinity, not a NaN, because if one part is
- infinite, the complex value is infinite independent of the value of the
- other part. For the same reason,
- \fIcabs\fR()
- returns an infinity if its argument has an infinite part and a NaN
- part.
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- .IR "\fIcarg\fR\^(\|)",
- .IR "\fIcimag\fR\^(\|)",
- .IR "\fIconj\fR\^(\|)",
- .IR "\fIcreal\fR\^(\|)"
- .P
- The Base Definitions volume of POSIX.1\(hy2017,
- .IR "\fB<complex.h>\fP"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 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 .
- .PP
- Any typographical or formatting errors that appear
- in this page are most likely
- to have been introduced during the conversion of the source files to
- man page format. To report such errors, see
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .