# cplxexp(C++)

**cplxexp: exp, log, pow, sqrt --
exponential, logarithm, power, square root functions
**

## Synopsis

#include <complex.h>
class complex {
public:
friend complex exp(complex);
friend complex log(complex);
friend complex pow(double, complex);
friend complex pow(complex, int) throw();
friend complex pow(complex, double);
friend complex pow(complex, complex);
friend complex sqrt(complex) throw();

};

## Description

The following math functions are overloaded by the complex library,
where:
-- *x*, *y*, and *z* are of type **complex**.

*z* **= exp(***x***)**-
Returns
*e[x]*.

*z* **= log(***x***)**-
Returns the natural logarithm of
*x*.

*z* **= pow(***x***,** *y***)**-
Returns
*x[y]*.

*z* **= sqrt(***x***)**-
Returns the square root of
*x*,
contained in the first or fourth quadrants of the complex plane.

## References

**complex**(C++),
**cartpol**(C++),
**complex_error**(C++),
**cplxops**(C++),
**cplxtrig**(C++).
## Diagnostics

**exp**
returns
**(0, 0)**
when the real part of *x* is so small,
or the imaginary part is so large,
as to cause overflow.
When the real part is large enough to cause overflow,
**exp**
returns
**(HUGE, HUGE)**
if the cosine and sine of the imaginary part of *x* are positive,
**(HUGE, -HUGE)**
if the cosine is positive and the sine is not,
**(-HUGE, HUGE)**
if the sine is positive and the cosine is not,
and
**(-HUGE, -HUGE)**
if neither sine nor cosine is positive.
In all these cases,
*errno*
is set to **ERANGE**.
*log* returns **(-HUGE, 0)** and sets
*errno*
to **EDOM** when
*x*
is **(0, 0)**.

These error-handling procedures may be changed with the function
**complex_error**(C++).

*
© 2005 The SCO Group, Inc. All rights reserved.
*

SCO OpenServer Release 6.0.0 - 01 June 2005