# Mathematical functions with automatic domain

Note

`numpy.emath` is a preferred alias for `numpy.lib.scimath`, available after `numpy` is imported.

Wrapper functions to more user-friendly calling of certain math functions whose output data-type is different than the input data-type in certain domains of the input.

For example, for functions like `log` with branch cuts, the versions in this module provide the mathematically valid answers in the complex plane:

    >>> import math
    >>> np.emath.log(-math.exp(1)) == (1+1j*math.pi)
    True

Similarly, `sqrt`, other base logarithms, `power` and trig functions are correctly handled. See their respective docstrings for specific examples.

## Functions

`sqrt`(x) | Compute the square root of x.
`log`(x) | Compute the natural logarithm of x.
`log2`(x) | Compute the logarithm base 2 of x.
`logn`(n, x) | Take log base n of x.
`log10`(x) | Compute the logarithm base 10 of x.
`power`(x, p) | Return x to the power p, (x**p).
`arccos`(x) | Compute the inverse cosine of x.
`arcsin`(x) | Compute the inverse sine of x.
`arctanh`(x) | Compute the inverse hyperbolic tangent of x.