Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cplx.intro(3C++)

cartpol(3C++)

cplxerr(3C++)

cplxops(3C++)

cplxtrig(3C++)

intro(2)

CPLXEXP(3C++)

NAME

cplxexp, exp, log, log10, pow, sqrt − functions in the C++ complex number math library

SYNOPSIS

#include <complex.h>
class complex {
public:
friend complex exp(const complex);
friend complex log(const complex);
friend complex log10(const complex);
friend complex pow(double base, const complex exp);
friend complex pow(const complex base, int exp);
friend complex pow(const complex base, double exp);
friend complex pow(const complex base, const complex exp);
friend complex sqrt(const complex);
... // remainder not shown here
};

DESCRIPTION

These functions are versions of the corresponding floating-point math library functions, overloaded for use with complex numbers. 

complex z = exp(x)
Returns e raised to the x power, where x is a complex number, and e is the base of the natural logarithms. 

complex z = log(x)
Returns the natural logarithm (base e) of x, where x is a complex number. 

complex z = log10(x)
Returns the common logarithm (base 10) of x, where x is a complex number. 

complex z = pow(x, y)
Returns x raised to the y power, where x or y (or both) are complex numbers.  The library provides versions of this function optimized for various combinations of integer, floating-point, and complex arguments. 

complex z = sqrt(x)
Returns the square root of x, where x is a complex number.  The real part of the result will be non-negative. 

SEE ALSO

cplx.intro(3C++), cartpol(3C++), cplxerr(3C++), cplxops(3C++), cplxtrig(3C++), intro(2), Complex Tutorial . 

DIAGNOSTICS

exp(x)
If the real part of x is small enough or the imaginary part is large enough to cause overflow, exp() returns (0,0).  If the real part is large enough to cause overflow, returns a value depending on the sine and cosine of the imaginary part of x:

x.imag() x.imag() returned value
sin>=0 cos>=0 (HUGE_VAL, HUGE_VAL)
sin< 0 cos>=0 (HUGE_VAL, −HUGE_VAL)
sin>=0 cos< 0 (−HUGE_VAL, HUGE_VAL)
sin< 0 cos< 0 (−HUGE_VAL, −HUGE_VAL)

In all cases, errno is set to ERANGE (see intro(2)). 

log(x), log10(x)
If x is (0,0), returns (−HUGE_VAL, 0), sets errno to EDOM (see intro(2)), and generates a SING error (see cplxerr(3C++)). 
 

SunOS WorkShop_4.2  —  Last change: 24 March 1994

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026