# 26 Numerics library [numerics]

## 26.4 Complex numbers [complex.numbers]

### 26.4.8complex transcendentals [complex.transcendentals]

``` template<class T> complex<T> acos(const complex<T>& x); ```

Returns: The complex arc cosine of x.

Remarks: Behaves the same as C function cacos, defined in 7.3.5.1.

``` template<class T> complex<T> asin(const complex<T>& x); ```

Returns: The complex arc sine of x.

Remarks: Behaves the same as C function casin, defined in 7.3.5.2.

``` template<class T> complex<T> atan(const complex<T>& x); ```

Returns: The complex arc tangent of x.

Remarks: Behaves the same as C function catan, defined in 7.3.5.3.

``` template<class T> complex<T> acosh(const complex<T>& x); ```

Returns: The complex arc hyperbolic cosine of x.

Remarks: Behaves the same as C function cacosh, defined in 7.3.6.1.

``` template<class T> complex<T> asinh(const complex<T>& x); ```

Returns: The complex arc hyperbolic sine of x.

Remarks: Behaves the same as C function casinh, defined in 7.3.6.2.

``` template<class T> complex<T> atanh(const complex<T>& x); ```

Returns: The complex arc hyperbolic tangent of x.

Remarks: Behaves the same as C function catanh, defined in 7.3.6.3.

``` template<class T> complex<T> cos(const complex<T>& x); ```

Returns: The complex cosine of x.

``` template<class T> complex<T> cosh(const complex<T>& x); ```

Returns: The complex hyperbolic cosine of x.

``` template<class T> complex<T> exp(const complex<T>& x); ```

Returns: The complex base e exponential of x.

``` template<class T> complex<T> log(const complex<T>& x); ```

Remarks: the branch cuts are along the negative real axis.

Returns: The complex natural (base e) logarithm of x, in the range of a strip mathematically unbounded along the real axis and in the interval [-i times pi,i times pi] along the imaginary axis. When x is a negative real number, imag(log(x)) is pi.

``` template<class T> complex<T> log10(const complex<T>& x); ```

Remarks: the branch cuts are along the negative real axis.

Returns: The complex common (base 10) logarithm of x, defined as log(x)/log(10).

``` template<class T> complex<T> pow(const complex<T>& x, const complex<T>& y); template<class T> complex<T> pow (const complex<T>& x, const T& y); template<class T> complex<T> pow (const T& x, const complex<T>& y); ```

Remarks: the branch cuts are along the negative real axis.

Returns: The complex power of base x raised to the y-th power, defined as exp(y*log(x)). The value returned for pow(0,0) is implementation-defined.

``` template<class T> complex<T> sin (const complex<T>& x); ```

Returns: The complex sine of x.

``` template<class T> complex<T> sinh (const complex<T>& x); ```

Returns: The complex hyperbolic sine of x.

``` template<class T> complex<T> sqrt (const complex<T>& x); ```

Remarks: the branch cuts are along the negative real axis.

Returns: The complex square root of x, in the range of the right half-plane. If the argument is a negative real number, the value returned lies on the positive imaginary axis.

``` template<class T> complex<T> tan (const complex<T>& x); ```

Returns: The complex tangent of x.

``` template<class T> complex<T> tanh (const complex<T>& x); ```

Returns: The complex hyperbolic tangent of x.