<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">TL;DR:</div><div class="gmail_quote"><br></div><div class="gmail_quote">Mark Lawrence wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:13px">as "Although practicality beats purity." can we move on now please?</span></blockquote><div class="gmail_quote"><br></div><div class="gmail_quote">Absolutely.</div><div class="gmail_quote"><br></div><div class="gmail_quote"><div class="gmail_quote">Adding math.nan and math.inf is great, nothing else to do.</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Feel free to read more below, if you're as obsessed by this as I am.....<br></div><div><br></div><div><br></div></div><div class="gmail_quote">On Mon, Jan 12, 2015 at 8:05 AM, Stephen J. Turnbull <span dir="ltr"><<a href="mailto:stephen@xemacs.org" target="_blank">stephen@xemacs.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">AFAIK, the proposed math.nan is *not* a bunch of values. </blockquote><div><br></div><div>correct -- math.nan is a particular one of those values.</div><div><br></div><div>The thing is, in common usage, one often needs to know if a given float is one of the nan values -- it is very rare that anyone knows or cares which one.</div><div><br></div><div>So you need a good way to ask that question, and:</div><div><br></div><div>x == math.nan</div><div><br></div><div>does not work, due to how IEEE defined NaN. </div><div><br></div><div>So we have math.isnan(x), which is the right thing to do, and the most common question people would ask.</div><div><br></div><div>Being able to do x is math.nan, and have that give the answer most commonly wanted would be a nice way to spell, but, again, not worth breaking the now clear definition of "is".</div><div><br></div><div>So -- sorry to bring it up -- I was just enjoying the what if game (and genuinely curious about whether it was possible in the current python implementation to overload is like that.</div><div><br></div><div>I take it the answer is: "no, and that's a good thing."</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">particular float value that happens to be a NaN, just as math.pi is a<br>
particular float value that happens not to be a NaN.  The use cases<br>
are very different, however.  math.pi is used when you want a value<br>
that is a close IEEE 754 float approximation to mathematical pi in<br>
concrete computations, while math.nan is used when you want a value<br>
that "takes you out" of the world of concrete computation and can be<br>
interpreted as an "error value". </blockquote><div><br></div><div>sure, but the bigger difference is that</div><div><br></div><div>math.pi == math.pi returns True</div><div><br></div><div>and </div><div><br></div><div>x == math.pi returns True is x has the exact same values as math.pi</div><div><br></div><div>math.isnan(x) is, in more analogous to </div><div><br></div><div>a < x < b</div><div><br></div><div>i.e., a specific range of values.</div><div><br></div><div>Anyway,  I'm done.</div><div><br></div><div>-Chris</div><div><br></div></div><div><br></div>-- <br><div class="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></div>