[Bug middle-end/19609] [4.0 Regression] real and imaginary part interchanged when flags_complex_divide_method=1
pcarlini at suse dot de
gcc-bugzilla@gcc.gnu.org
Mon Jan 24 23:01:00 GMT 2005
------- Additional Comments From pcarlini at suse dot de 2005-01-24 23:01 -------
Hi Richard. It seems to me that the problem is in the implemented formula.
Looking at Goldberg, when |d| >= |c| in its paper,that is |bi| > |br| in the
Gcc code, we should have, at the end of the calculation:
((ai + ar*ratio)/div) + i((-ar + ai*ratio)/div)
and *not*:
((ar + ai*ratio)/div) + i((ai - ar*ratio)/div)
Indeed, this explanation is consistent with the behavior observed with
the specific testcase.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19609
More information about the Gcc-bugs
mailing list