These functions return the requested square root.
The square root of 0 is
+0 ± 0,
where the imaginary parts of the input and respective result have
the same sign.
For infinities and NaNs, the following rules apply, with the
earlier rules having precedence:
Input Result | amp;
| k + ∞*I | ∞ + ∞*I | (for all k)
|
-∞ + NaN*I | NaN ± ∞*I | amp;
|
∞ + NaN*I | ∞ + NaN*I | amp;
|
k + NaN*I | NaN + NaN*I | amp;
|
NaN + k*I | NaN + NaN*I | amp;
|
-∞ + k*I | +0 + ∞*I | amp;
|
∞ + k*I | ∞ + 0*I | amp;
|
For numbers with negative imaginary parts, the above special cases
apply given the identity:
csqrt(conj(z) = conj(sqrt(z))
Note that the sign of NaN is indeterminate.
Also, if the real or imaginary part of the input is finite and
an NaN is generated, an invalid exception will be thrown.