"What does sqrtMinusOne output as in debug?
Is it precisely 0 - 1i?
If not then I assume the error is just a rounding error"
I added my comment as an Answer since it seems to point correctly to the problem, together with the further obvious comment below in response to your reply.
Yeah, that will be the reason then because all those multiplications that you then do will increase that error. It is still a small error which is insignificant in real terms, but depending what you intend to do with the result the fact that it isn't precisely 0 could be a problem.
Since you know what sqrt(-1) is though you should just hard-code it as 0 -1i in your std::complex. No point taking the processing time to do a calculation with error when you could just hard-code it precisely!
Best Answer