Is nan in (nan,) correct?
Rustom Mody
rustompmody at gmail.com
Fri Mar 6 13:04:47 EST 2015
On Friday, March 6, 2015 at 10:29:19 PM UTC+5:30, Steven D'Aprano wrote:
> Rustom Mody wrote:
>
> > On Friday, March 6, 2015 at 3:31:58 PM UTC+5:30, Chris Angelico wrote:
> >> On Fri, Mar 6, 2015 at 8:50 PM, Rustom Mody wrote:
> >> > In a language like python with decent exceptions we do not need nans.
> >>
> >> Not so. I could perhaps accept that we don't need signalling NaNs, as
> >> they can be replaced with exceptions, but quiet NaNs are by definition
> >> _not_ exceptions.
> >
> > My impression (maybe I am wrong):
> > "Catch an exception and ignore it" is a way of converting signalling to
> > quiet With the added advantage of being able to tweak the specs of what
> > happens when nan op normal to one's taste
>
>
> I don't understand what you are trying to say.
>
> Let's take a dirt-simple example:
>
> def inverse(x):
> return 1.0/x
>
> There's an exception there, waiting to bite. If I include inverse() in some
> complex calculation:
>
> def function(x, y):
> return atan2(inverse(3*x*y)+1, inverse(1 - x**2 + 3*x - 0.2)**3)
>
> values = [function(1.5*x, y+2) for x, y in zip(xx, yy)]
>
> and I just wish to skip over the failed calculations, I can't just "ignore"
> exceptions:
>
> # This doesn't work!
> def inverse(x):
> try:
> return 1.0/x
> except ZeroDivisionError:
> pass
>
>
> I have to return something that acts like a number but isn't a number.
>
> Something which, once it enters a calculation, should propagate through it.
> But not necessarily something which once it enters can never be removed! It
> may be that some calculations can "cancel out" these "errors" (indeed, the
> atan2 function is one of those -- it can return non-NANs from at least some
> NAN arguments). So what should I return? It cannot be a number, but it has
> to act like a number. Ideally, it should carry diagnostic information so I
> can see what the failure was, for debugging, although I may not bother to
> do so that information should at least be available for use.
>
> I have just re-invented NANs.
Ok... Maybe so
As I said I am not too sure about this
However you have to give me a little fuller (if not more realistic) example
[Your xx and yy are what?]
And I have to see if I know how to tweak it nan-less
And at least maintain hopefully improve the clarity, succinctness of the original! Not saying I will be able -- just that thats the claim
More information about the Python-list
mailing list