### 17.1 Exponents and Logarithms ¶

: `y =` exp `(x)`

Compute `e^x` for each element of x.

To compute the matrix exponential, see Linear Algebra.

: `y =` expm1 `(x)`

Compute `exp (x) - 1` accurately in the neighborhood of zero.

: `y =` log `(x)`

Compute the natural logarithm, `ln (x)`, for each element of x.

To compute the matrix logarithm, see Linear Algebra.

: `y =` reallog `(x)`

Return the real-valued natural logarithm of each element of x.

If any element results in a complex return value `reallog` aborts and issues an error.

: `y =` log1p `(x)`

Compute `log (1 + x)` accurately in the neighborhood of zero.

: `y =` log10 `(x)`

Compute the base-10 logarithm of each element of x.

: `y =` log2 `(x)`
: `[f, e] =` log2 `(x)`

Compute the base-2 logarithm of each element of x.

If called with one output, compute the base-2 logarithm such that `2^y = x`.

If called with two output arguments, split x into binary mantissa (f) and exponent (e) such that `x = f * 2^e` where `1/2 <= abs (f) < 1` and e is an integer. If `x = 0`, `f = e = 0`.

: `y =` pow2 `(x)`
: `y =` pow2 `(f, e)`

With one input argument, compute y = 2 .^ x for each element of x.

With two input arguments, return y = f .* (2 .^ e). where for complex inputs only the real part of both inputs is regarded and from e only the real integer part. This calling form corresponds to C/C++ standard function `ldexp()`.

: `n =` nextpow2 `(x)`

Compute the exponent for the smallest power of two larger than the input.

For each element in the input array x, return the first integer n such that 2^n ≥ abs (x).

: `z =` realpow `(x, y)`

Compute the real-valued, element-by-element power operator.

This is equivalent to `x .^ y`, except that `realpow` reports an error if any return value is complex.

: `y =` sqrt `(x)`

Compute the square root of each element of x.

If x is negative, a complex result is returned.

To compute the matrix square root, see Linear Algebra.

: `y =` realsqrt `(x)`

Return the real-valued square root of each element of x.

If any element results in a complex return value `realsqrt` aborts and issues an error.

: `y =` cbrt `(x)`

Compute the real-valued cube root of each element of x.

Unlike `x^(1/3)`, the result will be negative if x is negative.

If any element of x is complex, `cbrt` aborts with an error.

: `y =` nthroot `(x, n)`

Compute the real (non-complex) n-th root of x.

x must have all real entries and n must be a scalar. If n is an even integer and x has negative entries then `nthroot` aborts and issues an error.

Example:

```nthroot (-1, 3)
⇒ -1
(-1) ^ (1 / 3)
⇒ 0.50000 - 0.86603i
```