From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,338371dbbe7075d X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: [Q] Portability of <= and >= with real operands Date: 1996/12/03 Message-ID: #1/1 X-Deja-AN: 202186527 references: <252531213wnr@diphi.demon.co.uk> organization: New York University newsgroups: comp.lang.ada Date: 1996-12-03T00:00:00+00:00 List-Id: Keith says "Suppose you've computed two quantities, X and Y, such that X is mathematically known to be less than Y, but it may be arbitrarily close. Since floating-point is of finite precision, the representations of X and Y may be equal. (For example, X = 0.0, Y = some tiny value which underflows to 0.0). Then X <= Y may reflect the relationship more accurately than X < Y. " Well first, surely you are not meaning to say that X<=Y is different from not (X>Y), which you are arguing is somehow less portable than X>=Y, so this argument is not self consistent! In fact if your analysis is based on a view of the mathemaytical proper values of variables, then this argument is almost certainly bogus, since approximations may lead X > Y to be true, even if X < Y mathematically. You cannot substitute rules like this for proper analysis. Both > and >= have perfectly well defined portable meanings for a given model of floating-point arithmetic, and you have to analyze your code with respect to a particular model.