summaryrefslogtreecommitdiffstats
path: root/man0p/complex.h.0p
diff options
context:
space:
mode:
Diffstat (limited to 'man0p/complex.h.0p')
-rw-r--r--man0p/complex.h.0p210
1 files changed, 210 insertions, 0 deletions
diff --git a/man0p/complex.h.0p b/man0p/complex.h.0p
new file mode 100644
index 000000000..960400670
--- /dev/null
+++ b/man0p/complex.h.0p
@@ -0,0 +1,210 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "<complex.h>" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" <complex.h>
+.SH NAME
+complex.h \- complex arithmetic
+.SH SYNOPSIS
+.LP
+\fB#include <complex.h>\fP
+.SH DESCRIPTION
+.LP
+The \fI<complex.h>\fP header shall define the following macros:
+.TP 7
+complex
+Expands to \fB_Complex\fP.
+.TP 7
+_Complex_I
+Expands to a constant expression of type \fBconst float _Complex\fP,
+with the value of the imaginary unit (that is, a number
+\fIi\fP such that \fIi\fP**2=-1).
+.TP 7
+imaginary
+Expands to \fB_Imaginary\fP.
+.TP 7
+_Imaginary_I
+Expands to a constant expression of type \fBconst float _Imaginary\fP
+with the value of the imaginary unit.
+.TP 7
+I
+Expands to either _Imaginary_I or _Complex_I. If _Imaginary_I is not
+defined, I expands to _Complex_I.
+.sp
+.LP
+The macros imaginary and _Imaginary_I shall be defined if and only
+if the implementation supports imaginary types.
+.LP
+An application may undefine and then, perhaps, redefine the complex,
+imaginary, and I macros.
+.LP
+The following shall be declared as functions and may also be defined
+as macros. Function prototypes shall be provided.
+.sp
+.RS
+.nf
+
+\fBdouble cabs(double complex);
+float cabsf(float complex);
+long double cabsl(long double complex);
+double complex cacos(double complex);
+float complex cacosf(float complex);
+double complex cacosh(double complex);
+float complex cacoshf(float complex);
+long double complex cacoshl(long double complex);
+long double complex cacosl(long double complex);
+double carg(double complex);
+float cargf(float complex);
+long double cargl(long double complex);
+double complex casin(double complex);
+float complex casinf(float complex);
+double complex casinh(double complex);
+float complex casinhf(float complex);
+long double complex casinhl(long double complex);
+long double complex casinl(long double complex);
+double complex catan(double complex);
+float complex catanf(float complex);
+double complex catanh(double complex);
+float complex catanhf(float complex);
+long double complex catanhl(long double complex);
+long double complex catanl(long double complex);
+double complex ccos(double complex);
+float complex ccosf(float complex);
+double complex ccosh(double complex);
+float complex ccoshf(float complex);
+long double complex ccoshl(long double complex);
+long double complex ccosl(long double complex);
+double complex cexp(double complex);
+float complex cexpf(float complex);
+long double complex cexpl(long double complex);
+double cimag(double complex);
+float cimagf(float complex);
+long double cimagl(long double complex);
+double complex clog(double complex);
+float complex clogf(float complex);
+long double complex clogl(long double complex);
+double complex conj(double complex);
+float complex conjf(float complex);
+long double complex conjl(long double complex);
+double complex cpow(double complex, double complex);
+float complex cpowf(float complex, float complex);
+long double complex cpowl(long double complex, long double complex);
+double complex cproj(double complex);
+float complex cprojf(float complex);
+long double complex cprojl(long double complex);
+double creal(double complex);
+float crealf(float complex);
+long double creall(long double complex);
+double complex csin(double complex);
+float complex csinf(float complex);
+double complex csinh(double complex);
+float complex csinhf(float complex);
+long double complex csinhl(long double complex);
+long double complex csinl(long double complex);
+double complex csqrt(double complex);
+float complex csqrtf(float complex);
+long double complex csqrtl(long double complex);
+double complex ctan(double complex);
+float complex ctanf(float complex);
+double complex ctanh(double complex);
+float complex ctanhf(float complex);
+long double complex ctanhl(long double complex);
+long double complex ctanl(long double complex);
+\fP
+.fi
+.RE
+.LP
+\fIThe following sections are informative.\fP
+.SH APPLICATION USAGE
+.LP
+Values are interpreted as radians, not degrees.
+.SH RATIONALE
+.LP
+The choice of \fII\fP instead of \fIi\fP for the imaginary unit concedes
+to the widespread use of the identifier \fIi\fP for
+other purposes. The application can use a different identifier, say
+\fIj\fP, for the imaginary unit by following the inclusion of
+the \fI<complex.h>\fP header with:
+.sp
+.RS
+.nf
+
+\fB#undef I
+#define j _Imaginary_I
+\fP
+.fi
+.RE
+.LP
+An \fII\fP suffix to designate imaginary constants is not required,
+as multiplication by \fII\fP provides a sufficiently
+convenient and more generally useful notation for imaginary terms.
+The corresponding real type for the imaginary unit is
+\fBfloat\fP, so that use of \fII\fP for algorithmic or notational
+convenience will not result in widening types.
+.LP
+On systems with imaginary types, the application has the ability to
+control whether use of the macro I introduces an imaginary
+type, by explicitly defining I to be _Imaginary_I or _Complex_I. Disallowing
+imaginary types is useful for some applications
+intended to run on implementations without support for such types.
+.LP
+The macro _Imaginary_I provides a test for whether imaginary types
+are supported.
+.LP
+The \fIcis\fP() function (\fIcos\fP(\fIx\fP) + \fII\fP*\fIsin\fP(\fIx\fP))
+was considered but rejected because its
+implementation is easy and straightforward, even though some implementations
+could compute sine and cosine more efficiently in
+tandem.
+.SH FUTURE DIRECTIONS
+.LP
+The following function names and the same names suffixed with \fIf\fP
+or \fIl\fP are reserved for future use, and may be added
+to the declarations in the \fI<complex.h>\fP header.
+.TS C
+center; lw(26) lw(26) lw(26).
+T{
+.br
+\fIcerf\fP()
+.br
+\fIcerfc\fP()
+.br
+\fIcexp2\fP()
+.br
+\
+T} T{
+.br
+\fIcexpm1\fP()
+.br
+\fIclog10\fP()
+.br
+\fIclog1p\fP()
+.br
+\
+T} T{
+.br
+\fIclog2\fP()
+.br
+\fIclgamma\fP()
+.br
+\fIctgamma\fP()
+.br
+\
+T}
+.TE
+.SH SEE ALSO
+.LP
+The System Interfaces volume of IEEE\ Std\ 1003.1-2001, \fIcabs\fP(),
+\fIcacos\fP(), \fIcacosh\fP(), \fIcarg\fP(), \fIcasin\fP(), \fIcasinh\fP(),
+\fIcatan\fP(), \fIcatanh\fP(), \fIccos\fP(), \fIccosh\fP(), \fIcexp\fP(),
+\fIcimag\fP(), \fIclog\fP(), \fIconj\fP(), \fIcpow\fP(), \fIcproj\fP(),
+\fIcreal\fP(), \fIcsin\fP(), \fIcsinh\fP(), \fIcsqrt\fP(), \fIctan\fP(),
+\fIctanh\fP()
+.SH COPYRIGHT
+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 .