<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jan 14, 2015 at 4:05 PM, Ron Adam <span dir="ltr"><<a href="mailto:ron3200@gmail.com" target="_blank">ron3200@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Did you mean to take this off line?<br></blockquote><div><br></div><div>no I really hate mailing lists that don't default to reply to the list -- drives me crazy... </div><div><br></div><div>Bringing it back on list.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If I'm checking the tolerance of a resistor, I would measure it's resistance and calculate that against it's rated value.<br>
<br>
      abs(rated-resistance - actual_resistance) / rated_resistance < .05<br>
<br>
If they are equal, then I get 0.0.  If it's 0, I get 1.0, or 100%.<br></blockquote><div><br></div><div>well, I suspect that you never need to check a resistor that is rated for zero ohms. and if  you get one that measures out to zero ohms, it probably is 100% error, or, in any case not "close" enough. so that's a particular use case, and I think my idea for a zero_tolerance, which is this case you'd set to zero, would support that.</div><div><br></div><div>But the goal here is a method that will work most of the time, without a priory knowledge of how large the inputs are likely to be. If you know that, then you can use an absolute tolerance. You might get that by your computation above, but you could pass that in to a "close" function -- or not bother to write a close function, 'cause that's easy anyway.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I would never be comparing a resistor to a rating of 0, and expect any reasonable answer.   Can you think of a real case which this come up?  I think it's in the realm of just don't do that.<br></blockquote><div><br></div><div>Not in that case, of course, no. But in the general case of checking whether a computation produces about the same answer as expected (or as it did before you refactored the code), then zero mught cro up.</div><div><br></div><div>But you have a point - maybe we could have a is_close function with a nice warning in the docs "don't expect this to work with zeros", and still have somethign useful.</div><div><br></div><div>Would raising a ValueError on zero input be too pedantic?</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It might be a case where you need more than two values.   You just can't assume a relative size with only two numbers.<br></blockquote><div><br></div><div>the assumption is relative to the size of the input numbers -- which is mostly fine, but another way to deal with zero is to (optional) pass in a "relative to this" parameter -- but that essentially reverts to absolute tolerance anyway.</div><div><br></div><div>Hmm -- new thought -- zero_tolerance can be the Minimum value that you use for the relative tolerance comparison -- that may be easy and at least give a continuous result...</div><div><br></div><div>-Chris</div><div><br></div></div><br clear="all"><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>