CXABS 3CW "21 March 2008" "mathcw-1.00"
Table of contents
cxabsf, cxabs, cxabsl, cxabsw, cxabsq, cxabsll, cxabsdf, cxabsd, cxabsdl, cxabsdll - complex absolute value function with real arithmetic
cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ]
#include <mathcw.h>
#include <cxcw.h>
extern float cxabsf (cx_float z);
extern double cxabs (cx_double z);
extern long double cxabsl (cx_long double z);
extern __float80 cxabsw (cx_float80 z);
extern __float128 cxabsq (cx_float128 z);
extern long_long_double cxabsll (cx_long_long_double z);
extern decimal_float cxabsdf (cx_decimal_float z);
extern decimal_double cxabsd (cx_decimal_double z);
extern decimal_long_double cxabsdl (cx_decimal_long_double z);
extern decimal_long_long_double cxabsdll (cx_decimal_long_long_double z);
NB: Functions with prototypes containing underscores in type names
may be available only with certain extended compilers.
Compute the absolute value of
z,
a two-element array with the real and imaginary parts in that order.
The cx family of functions provide limited support for complex
arithmetic when compiler or language support for a complex type is
lacking.
The
real
absolute-value function cannot overflow or underflow, since its
operation involves at most a sign change. By contrast, the
complex
absolute-value function is subject to overflow for arguments within a
factor of 1/sqrt(2) ~= 0.707 of the largest finite floating-point
number. In practice, this may require designing computer algorithms
for complex arithmetic to provide suitable exact scaling of
intermediate expressions in order to avoid such overflow.
Return the absolute value.
If either component of the argument is a NaN, return the argument
without setting errno.
cxadd(3CW),
cxarg(3CW),
cxconj(3CW),
cxcopy(3CW),
cxdiv(3CW),
cximag(3CW),
cxmul(3CW),
cxneg(3CW),
cxproj(3CW),
cxreal(3CW),
cxset(3CW),
cxsub(3CW).