CXLOG 3CW "12 August 2009" "mathcw-1.00"

Table of contents


NAME

cxlogf, cxlog, cxlogl, cxlogw, cxlogq, cxlogll, cxlogdf, cxlogd, cxlogdl, cxlogdll - complex natural (base-e) logarithm 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 void cxlogf (cx_float result, cx_float z);

extern void cxlog (cx_double result, cx_double z);

extern void cxlogl (cx_long_double result, cx_long_double z);

extern void cxlogw (cx_float80 result, cx_float80 z);

extern void cxlogq (cx_float128 result, cx_float128 z);

extern void cxlogll (cx_long_long_double result, cx_long_long_double z);

extern void cxlogdf (cx_decimal_float result, cx_decimal_float z);

extern void cxlogd (cx_decimal_double result, cx_decimal_double z);

extern void cxlogdl (cx_decimal_long_double result, cx_decimal_long_double z);

extern void cxlogdll (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 natural logarithm of the complex value z, a two-element array with the real and imaginary parts in that order, that is, the logarithm to the base e (= 2.718281828...) of z.

If the argument in Cartesian form is z = x + y I, where x and y are real, then in polar form, z = r exp(t I), where r = |z| = cabs(z) = hypot(x, y) and t = carg(z) = atan2(y, x). We then have clog(z) = clog(r exp(t I)) = log(r) + t I. Accuracy of the complex logarithm function then depends on that of three real functions.

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 is a branch cut in surface of the imaginary part of the complex logarithm on the entire negative real axis. There is a branch point in the surface of the real part at the origin.

RETURN VALUES

Return the complex natural logarithm.

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

atan2(3CW), cxabs(3CW), cxarg(3CW), cxexp(3CW), cxexpm1(3CW), cxlog1p(3CW), hypot(3CW), log(3CW), log1p(3CW).