CXEXPM1 3CW "27 September 2009" "mathcw-1.00"

Table of contents


NAME

cxexpm1f, cxexpm1, cxexpm1l, cxexpm1w, cxexpm1q, cxexpm1ll, cxexpm1df, cxexpm1d, cxexpm1dl, cxexpm1dll - complex exponential (base-e) function, less one, with real arithmetic

SYNOPSIS

cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ]

#include <mathcw.h>

#include <cxcw.h>

extern void cxexpm1f (cx_float result, cx_float z);

extern void cxexpm1 (cx_double result, cx_double z);

extern void cxexpm1l (cx_long_double result, cx_long_double z);

extern void cxexpm1w (cx_float80 result, cx_float80 z);

extern void cxexpm1q (cx_float128 result, cx_float128 z);

extern void cxexpm1ll (cx_long_long_double result, cx_long_long_double z);

extern void cxexpm1df (cx_decimal_float result, cx_decimal_float z);

extern void cxexpm1d (cx_decimal_double result, cx_decimal_double z);

extern void cxexpm1dl (cx_decimal_long_double result, cx_decimal_long_double z);

extern void cxexpm1dll (cx_decimal_long_long_double result, 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 complex exponential of the complex value z, less one, where z is a two-element array with the real and imaginary parts in that order, that is, e (= 2.718281828...) to the power z, less one. The returned value is equivalent to one less than the value returned in the first argument by cxexp(result, z)", but is computed in a way that avoids the subtraction loss when |z| is small.

CAVEATS

Because the real exponential function grows rapidly for arguments of large magnitude, it approaches overflow to Infinity, or underflow to zero, fairly quickly.

Imaginary parts of large magnitude require argument reduction in the trigonometric functions, and most implementations of those functions fail to provide exact argument reduction, producing wildly-inaccurate trigonometric functions that propagate to the complex exponential.

Trigonometric argument reduction in the MathCW library is always exact, so the components of the complex exponential should suffer at most three rounding errors each.

The cx family of functions provide limited support for complex arithmetic when compiler or language support for a complex type is lacking.


BRANCH CUTS

There are no branch cuts or branch points on the real and imaginary surfaces of the complex exponential function.

RETURN VALUES

Return the complex exponential.

ERRORS

For finite complex arguments, the returned value is complex and finite. For infinite arguments, at least one component of the returned value is Infinity. Otherwise, for NaN arguments, at least one component of the returned value is a quiet NaN.

SEE ALSO

cos(3CW), cxexp(3CW), cxlog(3CW), cxlog1p(3CW), cxpow(3CW), exp(3CW), sin(3CW).