Numerical imprecision in complex square root

The expression used for complex square root returns imprecise results for negative reals. To avoid this imprecision, the equation is rearranged not to add `r` to `x.re` (which are of similar size and opposite sign).