CXABS 3CW "21 March 2008" "mathcw-1.00"

Table of contents


NAME

cxabsf, cxabs, cxabsl, cxabsw, cxabsq, cxabsll, cxabsdf, cxabsd, cxabsdl, cxabsdll - complex absolute value function with real arithmetic

SYNOPSIS

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.


DESCRIPTION

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.


CAVEAT

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 VALUES

Return the absolute value.

ERRORS

If either component of the argument is a NaN, return the argument without setting errno.

SEE ALSO

cxadd(3CW), cxarg(3CW), cxconj(3CW), cxcopy(3CW), cxdiv(3CW), cximag(3CW), cxmul(3CW), cxneg(3CW), cxproj(3CW), cxreal(3CW), cxset(3CW), cxsub(3CW).