From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id KAA13714 for caml-redistribution; Mon, 6 Sep 1999 10:26:04 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id IAA24191 for ; Sat, 4 Sep 1999 08:52:52 +0200 (MET DST) Received: from cepheus.azstarnet.com (cepheus.azstarnet.com [169.197.56.195]) by nez-perce.inria.fr (8.8.7/8.8.7) with ESMTP id IAA10844 for ; Sat, 4 Sep 1999 08:52:50 +0200 (MET DST) Received: from dylan (dialup17ip041.tus.azstarnet.com [169.197.38.41]) by cepheus.azstarnet.com (8.9.3/8.9.3) with SMTP id XAA28664 for ; Fri, 3 Sep 1999 23:52:46 -0700 (MST) X-Sent-via: StarNet http://www.azstarnet.com/ Message-ID: <000c01bef6a2$1dd6e4f0$210148bf@dylan> From: "David McClain" To: Subject: FP Computations Date: Fri, 3 Sep 1999 23:52:53 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Sender: weis Ohmygosh! I just ran a simple proof checker in Mathematica against the IEEE FP spec with distinct (+0.0) and (-0.0). Do you realize that subtraction no longer anti-commutes? That is, in general there is no way to perform (a -. b) as a correction to (b -. a). Subtraction almost anti-commutes, except when a = b. In that case (a -. b) = +0.0, and (b -. a) = +0.0 also! Hence we cannot expect that (a -. b) = -. (b -. a). Also can't use (-0.0) -. (b -. a) since that's exactly the same as direct negation with FCHS. Can't use (+0.0) -. (b -. a) since a might be -0.0 and b might be +0.0 in which case (a -. b) = -0.0 and (b -. a) = (+0.0), and hence (+0.0) -. (b -. a) = (+0.0) -. (+0.0) = (+0.0). We're stuck! We MUST evaluate (a -. b) in the order indicated because there is in general no way to correct the reverse order. Yikes! - DM