# 29 Numerics library [numerics]

## 29.5 Complex numbers [complex.numbers]

### 29.5.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); ```

Returns: The complex natural (base-e) logarithm of x. For all x, imag(log(x)) lies in the interval [π, π], and when x is a negative real number, imag(log(x)) is π.

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

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

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

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

```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); ```

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

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

```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); ```

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.

Remarks: The branch cuts are along the negative real 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.