[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