# FreeBSD Manual Pages

```CSQRT(3)		 BSD Library Functions Manual		      CSQRT(3)

NAME
csqrt, csqrtf, csqrtl -- complex square root functions

LIBRARY
Math Library (libm, -lm)

SYNOPSIS
#include <complex.h>

double complex
csqrt(double complex z);

float complex
csqrtf(float complex z);

long double complex
csqrtl(long double	complex	z);

DESCRIPTION
The csqrt(), csqrtf(), and	csqrtl() functions compute the square root of
z in the complex plane, with a branch cut along the negative real axis.
In	other words, csqrt(), csqrtf(),	and csqrtl() always return the square
root whose	real part is non-negative.

RETURN VALUES
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
k + infinity*I	infinity + infinity*I	    (for all k)
-infinity + NaN*I	NaN +- infinity*I
infinity + NaN*I	infinity + NaN*I
k + NaN*I		NaN + NaN*I
NaN + k*I		NaN + NaN*I
-infinity + k*I	+0 + infinity*I
infinity + k*I	infinity + 0*I

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 imagi-
nary part of the input is finite and an NaN is generated, an invalid ex-
ception will be thrown.

cabs(3), fenv(3), math(3)

STANDARDS
The csqrt(), csqrtf(), and	csqrtl() functions conform to ISO/IEC
9899:1999 ("ISO C99").

BUGS
For csqrt() and csqrtl(), inexact results are not always correctly
rounded.

BSD				March 30, 2008				   BSD
```

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=csqrt&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>