Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!brunix!mj From: mj@brunix (Mark Johnson) Newsgroups: comp.lang.prolog Subject: Re: Floating Point Message-ID: <19165@brunix.UUCP> Date: 28 Oct 89 18:17:11 GMT References: <2491@munnari.oz.au> <36169@srcsip.UUCP> <2524@munnari.oz.au> <19080@brunix.UUCP> <2554@munnari.oz.au> Sender: news@brunix.UUCP Reply-To: mj@monaco.UUCP (Mark Johnson) Organization: Brown University Department of Computer Science Lines: 28 > > At least one Prolog I know of (BNR Prolog) uses interval arithmetic. > > Couldn't this be used to provide a sound floating-point unification? > First tell us what you _mean_ by "sound floating-point unification". > Then maybe the question can be answered. Yes, that was just sloppy thinking on my part. I guess what I really should have said is "couldn't interval arithmetic be used to provide _complete_ floating point unification?", where by complete I mean that if expressions E1 and E2 denote the same real number, then E1 = E2 (or, since 'is' is the numerical equality predicate in Prolog, I guess that should be E1 is E2). Now I'm just a lowly linguist, but it seems to me that the inherent inaccuracy in (some) floating point calculations will mean that any floating point implementation of real arithmetic will be unsound (in the sense that E1 is E2 is true even though E1 and E2 don't denote the same real number). On the other hand, as far as I can see, the interval arithmetic approach is complete, something which neither the fuzzy unification nor the exact unification approaches can guarantee. (I'm assuming that it is in general possible to calculate upper and lower bounds for any calculation, but it's not obvious to me that this is really possible). Mark