Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!pasteur!ucbvax!decwrl!sun!pitstop!sundc!seismo!uunet!mcvax!philmds!leo From: leo@philmds.UUCP (Leo de Wit) Newsgroups: comp.lang.c Subject: About precision invervals (was: How not to write a loop) Keywords: precision floating numbers Message-ID: <530@philmds.UUCP> Date: 26 Jun 88 21:02:21 GMT References: <16276@brl-adm.ARPA> <329@accelerator.eng.ohio-state.edu> <3637@teklds.TEK.COM> Reply-To: leo@philmds.UUCP (L.J.M. de Wit) Organization: Philips I&E DTS Eindhoven Lines: 21 In article <3637@teklds.TEK.COM> daniels@teklds.UUCP (Scott Daniels) writes: [stuff about binary floating point representation deleted] >Ok, here we go: > To represent 2.0 exactly, we could use 2/.1000, but that represents the >interval 1.8750:2.1250. Now, there is a tighter specification which is >entirely within that interval: 1/.1111 (which represents 1.8125:1.9375), so >we should use that tighter interval since no poin inside it is any further >from the desired value 2.0 than the range that 2/.1000 gives. Hence the >besty representation (the tightest) for 2.0 is an interval which does not >even include 2.0! Now I may've got this wrong, but 2.0 - 1.8125 = 0.1875 (the most far point). 2.1250 - 2.0 = 0.1250 (upper far point of interval) 2.0 - 1.8750 = 0.1250 (lower far point of interval) And 0.1875 > both other distances. So your theorem does not hold (yet). Leo (Q.E.D. Quick End Dirty, sorry for the misspelling 8-)