Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!ames!ucbcad!ucbvax!jade!lapis.berkeley.edu!oster From: oster@lapis.berkeley.edu.UUCP Newsgroups: comp.arch Subject: Re: Success of IEEE Floating Point Standard (IEEE 754) Message-ID: <2466@jade.BERKELEY.EDU> Date: Sat, 7-Feb-87 14:41:03 EST Article-I.D.: jade.2466 Posted: Sat Feb 7 14:41:03 1987 Date-Received: Tue, 10-Feb-87 04:11:21 EST References: <760@orcisi.UUCP> <112@lmi-angel.UUCP> Sender: usenet@jade.BERKELEY.EDU Reply-To: oster@lapis.berkeley.edu.UUCP (David Phillip Oster) Organization: University of California, Berkeley Lines: 55 Keywords: IEEE754 supercomputer standards In article <5592@amdahl.UUCP> sjl@amdahl.UUCP (Steve Langdon) writes: >[actually (thos@cca.ucsf.edu) (Thos Sumner)] replies to my posting which >indicated that my former colleagues at Control Data believed IEEE 754 >was difficult to implement in a high end machine. > >Thos speculated that design flaws caused by incorrect results from a CAD >program resulted in a catastrophic accident. The CAD program relied on >the properties of IEEE 754, but produced incorrect results because it >was run on a computer with a different floating point format. The >computer manufacturer and designers were held responsible and punished. > >This is a nice piece of melodrama, but it is about as sensible as the >construction company in Florida who sued Lotus because 1-2-3 failed to >guess which numbers to add in a spreadsheet. I will leave it to readers >to find the holes in the scenario. Whether the engineers responsible go to jail or not, whether building a system that gives wrong answers is criminal or not, it is WRONG to build a system that gives wrong answers. It is just plain morally wrong. They are making a marketing decision that means that innocent people will die as a direct result of their actions. A system that gets the wrong answer fast is not what I need. In fact, it has negative worth, because it lulls me into believing I know something that in fact I do not know. The Lotus 123 case involved an architect who told his spreadsheet to sum only rows 1-10 and then tried to sue the manufacturer because the spead sheet didn't ignore his express orders and sum rows 1-11 (what he meant, not what he said.) A very different issue. Now, I have no objection to building a _component_ that produces in-accurate answers, and I would not force people to throw away their rulers and use only verier calipers. Sometimes you don't need a lot of accuracy. But if you are going to use that component in a system, you as the builder of the system, have a duty to see that the system doesn't pretend to more accuracy than it has. You must be aware of the error propagation behavior of all your algorithms, both on average and on extreme data, and you must put in checks, and compensate. Maybe not in a video game, but in a serious tool, like a flight simulator, on which peoples lives may well depend (Pilots expect the real place to behave like the simulator after all.) The trouble is, many people who make decisions about purchasing machines actually compare machines based on MFLOPS. If one is running IEEE standard and the other is not, then it is not a fair comparison, if only in the human cost to write the software to compensate for the inaccuracy of the non-IEEE flavor. Like the word "mayonaise", "floating point" should be a term reserved for things that meet the standard. If your machine does something else, you should be required to call it "imitation floating point" in your marketing brochures. --- David Phillip Oster -- "The goal of Computer Science is to Arpa: oster@lapis.berkeley.edu -- build something that will last at Uucp: ucbvax!ucblapis!oster -- least until we've finished building it."