How do you take the square root of a negative number in C++?
I know it should return a real and a complex part, I get a NaN?
How do I take the real part?
#include <complex>
int main()
{
std::complex<double> two_i = std::sqrt(std::complex<double>(-4));
}
or just
std::complex<double> sqrt_minus_x(0, std::sqrt(std::abs(x)));
sqrt(-x)
where x is a positive number is simply 0 + sqrt(x)*i
. The real part is just 0.
In general, the real part is x > 0 ? sqrt(x) : 0
and the imaginary part is x < 0 ? sqrt(x) : 0
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With