[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
cruftier contagion corollaries cause consternation
- To: common-lisp @ SU-AI, mlb%SPA-NIMBUS @ SCRC-STONY-BROOK
- Subject: cruftier contagion corollaries cause consternation
- From: Glenn S. Burke <GSB @ MIT-MC>
- Date: Sun, 04 Nov 1984 11:30:00 -0000
- Cc: Guy.Steele @ CMU-CS-A, rwg%SPA-NIMBUS @ SCRC-STONY-BROOK
Date: Sat, 3 Nov 84 07:44 PST
From: Bill Gosper <rwg%SPA-NIMBUS@SCRC-STONY-BROOK.ARPA>
. . .
A much cruftier corollary of floating contagion shows up in min
and max. It is a contradiction to say "max returns the argument
that is greatest ..." and then in the next sentence say "the
implementation is free to produce ... [some rational's] floating
point approximation". Such an approximation is generally not any
of the arguments, or worse, it may even by = to an argument that
was not the largest!
Yum, it can be even worse with things like multiple-argument =.
There can be two rationals R1 and R2 which are different but both
= to some float F. So, (= r1 r2 f) would be true if it was done
as (= (float r1) (float r2) f), i.e. do contagious coercion of all args
before doing anything else, but not if it was done as
(and (= r1 r2) (= r2 f)). What would your users think if
(= r1 r2 f) was T in when run in NIL compiled and in Spice
interpreted, and NIL when run in NIL interpreted and in Spice
compiled?