# Function SQRT, ISQRT

### Syntax

• sqrt numberroot
• isqrt naturalnatural-root

### Arguments and Values

• number, root - a number.
• natural, natural-root - a non-negative integer.

### Description

sqrt and isqrt compute square roots.

sqrt returns the principal square root of number. If the number is not a complex but is negative, then the result is a complex.

isqrt returns the greatest integer less than or equal to the exact positive square root of natural.

If number is a positive rational, it is implementation-dependent whether root is a rational or a float. If number is a negative rational, it is implementation-dependent whether root is a complex rational or a complex float.

The mathematical definition of complex square root (whether or not minus zero is supported) follows:

```
(sqrt x) = (exp (/ (log x) 2))

```

The branch cut for square root lies along the negative real axis, continuous with quadrant II. The range consists of the right half-plane, including the non-negative imaginary axis and excluding the negative imaginary axis.

```
(sqrt 9.0)

→
3.0

(sqrt -9.0)

→
#C(0.0 3.0)

(isqrt 9)

→
3

(sqrt 12)

→
3.4641016

(isqrt 12)

→
3

(isqrt 300)

→
17

(isqrt 325)

→
18

(sqrt 25)

→
5
or 5.0

(isqrt 25)

→
5

(sqrt -1)

→
#C(0.0 1.0)

(sqrt #c(0 2))

→
#C(1.0 1.0)

```

None.

None.

### Exceptional Situations

The function sqrt should signal type-error if its argument is not a number.

The function isqrt should signal type-error if its argument is not a non-negative integer.

The functions sqrt and isqrt might signal arithmetic-error.

• {\secref\FloatSubstitutability}

### Notes

isqrt may be defined as follows, although in real implementations this function might be potentially more efficient.

```
(defun isqrt (x)
(values (floor (sqrt x))))

```

\issue{IEEE-ATAN-BRANCH-CUT:SPLIT}