std::sqrt(std::complex) - cppreference.com (original) (raw)

Computes the square root of the complex number z with a branch cut along the negative real axis.

Contents

[edit] Parameters

z - complex number to take the square root of

[edit] Return value

If no errors occur, returns the square root of z, in the range of the right half-plane, including the imaginary axis ([0; +∞) along the real axis and (−∞; +∞) along the imaginary axis).

[edit] Error handling and special values

Errors are reported consistent with math_errhandling.

If the implementation supports IEEE floating-point arithmetic,

[edit] Notes

The semantics of this function are intended to be consistent with the C function csqrt.

[edit] Example

#include #include   int main() { std::cout << "Square root of -4 is " << std::sqrt(std::complex(-4.0, 0.0)) << '\n' << "Square root of (-4,-0) is " << std::sqrt(std::complex(-4.0, -0.0)) << " (the other side of the cut)\n"; }

Output:

Square root of -4 is (0,2) Square root of (-4,-0) is (0,-2) (the other side of the cut)

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 2597 C++98 specification mishandles signed zero imaginary parts erroneous requirement removed

[edit] See also