Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!zaphod.mps.ohio-state.edu!van-bc!ubc-cs!uw-beaver!tera.com!bob From: bob@tera.com (Bob Alverson) Newsgroups: comp.arch Subject: Re: IEEE floating point Message-ID: <1991May28.050205.3985@tera.com> Date: 28 May 91 05:02:05 GMT References: <1991May25.222551.16365@zoo.toronto.edu> Sender: news@tera.com (News Administrator) Organization: Tera Computer Company, Seattle, WA Lines: 23 In article mccalpin@perelandra.cms.udel.edu (John D. McCalpin) writes: >(2) The reason for the difference between the IEEE and IBM RS/6000 >errors is unclear to me. I got a long explanation from someone at IBM >Austin a year or two ago trying to explain why the enhanced accuracy >led to a larger error calculation -- but I never did really understand >it. In an effort to check the accuracy of the IEEE error estimates, >I sorted the errors and then summed them in order of increasing >magnitude and got identical results.... >Note that the -qnomaf flag prohibits the compiler from using the >enhanced accuracy combined multiply/add instruction. This should give >IEEE compliant results, but it does not. As an example of how MAF can give worse error, consider this: a = pi*pi; b = a - pi*pi; If the second line is done with a single round, b is not zero. However, if each operation is separately rounded, b comes out as zero, as you might expect. This situation is most troubling, since MAF is seen to both enhance and reduce accuracy. The trick is figuring out which it does when. Bob