carta
csqrtf(3)

csqrtf3

Complex square root functions

Part of csqrt(3).

Usage

double complex

float complex

long double complex

Library

Math Library (libm, -lm)

Overview

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 s, the following rules apply, with the earlier rules having precedence:

Input Result k + *I + *I (for all k) - + *I *I
+ *I + *I k + *I + *I
+ k*I + *I - + k*I +0 + *I
+ k*I + 0*I

For numbers with negative imaginary parts, the above special cases apply given the identity:

csqrt(conj(z)) = conj(csqrt(z))

Note that the sign of is indeterminate. Also, if the real or imaginary part of the input is finite and an is generated, an invalid exception will be thrown.

History

  • FreeBSD 16.0-CURRENT (2026-10-27) to FreeBSD 13.3-RELEASE: the text shown here
  • FreeBSD 13.2-RELEASE to FreeBSD 13.0-RELEASE
  • FreeBSD 12.4-RELEASE
  • FreeBSD 12.3-RELEASE
  • FreeBSD 12.2-RELEASE
  • FreeBSD 12.1-RELEASE
  • FreeBSD 12.0-RELEASE
  • FreeBSD 11.4-RELEASE
  • FreeBSD 11.3-RELEASE
  • FreeBSD 11.2-RELEASE
  • FreeBSD 11.1-RELEASE
  • FreeBSD 11.0-RELEASE
  • FreeBSD 10.4-RELEASE
  • FreeBSD 10.3-RELEASE
  • FreeBSD 10.2-RELEASE
  • FreeBSD 10.1-RELEASE
  • FreeBSD 10.0-RELEASE
  • FreeBSD 9.3-RELEASE
  • FreeBSD 9.2-RELEASE
  • FreeBSD 9.1-RELEASE
  • FreeBSD 9.0-RELEASE
  • FreeBSD 8.4-RELEASE
  • FreeBSD 8.3-RELEASE
  • FreeBSD 8.2-RELEASE
  • FreeBSD 8.1-RELEASE
  • FreeBSD 8.0-RELEASE

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.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.