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 KAA25437 for caml-redistribution; Mon, 6 Sep 1999 10:25:56 +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 XAA00818 for ; Fri, 3 Sep 1999 23:43:28 +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 XAA27341 for ; Fri, 3 Sep 1999 23:43:26 +0200 (MET DST) Received: from dylan (dialup01ip058.tus.azstarnet.com [169.197.30.58]) by cepheus.azstarnet.com (8.9.3/8.9.3) with SMTP id OAA14279 for ; Fri, 3 Sep 1999 14:43:22 -0700 (MST) X-Sent-via: StarNet http://www.azstarnet.com/ Message-ID: <000501bef655$5ce7a2d0$210148bf@dylan> From: "David McClain" To: Subject: The Pentium Non-Bug Date: Fri, 3 Sep 1999 14:41:20 -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 In light of my recent trip around the mulberry bush, I thought I would post a preamble from some of my code for everyone's sake. - DM (* ------------------------------------------------------------ *) (* Considerable care has been taken to be IEEE correct *) (* in the face of distinct (+0.0) and (-0.0). *) (* The rules of the game are: *) (* Addition => commutative a + b = b + a *) (* Subtraction => anticommutative a - b = -(b - a) *) (* Multiplication => commutative a * b = b * a *) (* Division => inverse-commutative a / b = 1.0 / (b / a) *) (* Identity under addition: *) (* x + (-0.0) = x but x + (+0.0) != x *) (* Identity under subtraction: *) (* x - (+0.0) = x but x - (-0.0) != x *) (* Negation by subtraction: *) (* (-0.0) - x = neg x (= FCHS x) but (+0.0) - x != neg x *) (* Equivalence of subtraction by addition of negative: *) (* a - b = a + neg b *) (* Distribution of negation: *) (* a - b = -(b - a) = -b - (-a) = -b + a *) (* ;; remember that addition is commutative *) (* Complex conjugation by negation: *) (* conj(re,im) = (re, -im) != (re, 0 - im) *) (* Since the constant 0.0 generally denotes (+0.0) and since it is *) (* generally difficult to determine the sign of a given *) (* zero constant value, one simply cannot assume that: *) (* 0.0 + x = x *) (* x - 0.0 = x *) (* 0.0 - x = neg x *) (* Rather, one must carry out what appears to be a null operation, *) (* and be certain to negate when appropriate, instead of subtracting *) (* from zero. *)