sqrt

sqrt(x: array, /) array

Calculates the principal square root for each element x_i of the input array x.

Note

After rounding, each result must be indistinguishable from the infinitely precise result (as required by IEEE 754).

Note

For complex floating-point operands, sqrt(conj(x)) must equal conj(sqrt(x)).

Note

By convention, the branch cut of the square root is the negative real axis \((-\infty, 0)\).

The square root is a continuous function from above the branch cut, taking into account the sign of the imaginary component.

Accordingly, for complex arguments, the function returns the square root in the range of the right half-plane, including the imaginary axis (i.e., the plane defined by \([0, +\infty)\) along the real axis and \((-\infty, +\infty)\) along the imaginary axis).

Note: branch cuts follow C99 and have provisional status (see Branch Cuts).

Parameters:

x (array) – input array. Should have a floating-point data type.

Returns:

out (array) – an array containing the square root of each element in x. The returned array must have a floating-point data type determined by Type Promotion Rules.

Notes

Special cases

For real-valued floating-point operands,

  • If x_i is NaN, the result is NaN.

  • If x_i is less than 0, the result is NaN.

  • If x_i is +0, the result is +0.

  • If x_i is -0, the result is -0.

  • If x_i is +infinity, the result is +infinity.

For complex floating-point operands, let a = real(x_i), b = imag(x_i), and

  • If a is either +0 or -0 and b is +0, the result is +0 + 0j.

  • If a is any value (including NaN) and b is +infinity, the result is +infinity + infinity j.

  • If a is a finite number and b is NaN, the result is NaN + NaN j.

  • If a -infinity and b is a positive (i.e., greater than 0) finite number, the result is NaN + NaN j.

  • If a is +infinity and b is a positive (i.e., greater than 0) finite number, the result is +0 + infinity j.

  • If a is -infinity and b is NaN, the result is NaN + infinity j (sign of the imaginary component is unspecified).

  • If a is +infinity and b is NaN, the result is +infinity + NaN j.

  • If a is NaN and b is any value, the result is NaN + NaN j.

  • If a is NaN and b is NaN, the result is NaN + NaN j.

Changed in version 2022.12: Added complex data type support.