[Numpy-discussion] Catching and dealing with floating point errors
Warren Weckesser
warren.weckesser@enthought....
Mon Nov 8 15:20:12 CST 2010
On Mon, Nov 8, 2010 at 2:52 PM, Skipper Seabold <jsseabold@gmail.com> wrote:
> On Mon, Nov 8, 2010 at 3:45 PM, Warren Weckesser
> <warren.weckesser@enthought.com> wrote:
> >
> >
> > On Mon, Nov 8, 2010 at 2:17 PM, Skipper Seabold <jsseabold@gmail.com>
> wrote:
> >>
> >> On Mon, Nov 8, 2010 at 3:14 PM, Skipper Seabold <jsseabold@gmail.com>
> >> wrote:
> >> > I am doing some optimizations on random samples. In a small number of
> >> > cases, the objective is not well-defined for a given sample (it's not
> >> > possible to tell beforehand and hopefully won't happen much in
> >> > practice). What is the most numpythonic way to handle this? It
> >> > doesn't look like I can use np.seterrcall in this case (without
> >> > ignoring its actual intent). Here's a toy example of the method I
> >> > have come up with.
> >> >
> >> > import numpy as np
> >> >
> >> > def reset_seterr(d):
> >> > """
> >> > Helper function to reset FP error-handling to user's original
> >> > settings
> >> > """
> >> > for action in [i+'='+"'"+d[i]+"'" for i in d]:
> >> > exec(action)
> >> > np.seterr(over=over, divide=divide, invalid=invalid, under=under)
> >> >
> >>
> >> It just occurred to me that this is unsafe. Better options for
> >> resetting seterr?
> >
> >
> > Hey Skipper,
> >
> > I don't understand why you need your helper function. Why not just pass
> the
> > saved dictionary back to seterr()? E.g.
> >
> > saved = np.seterr('raise')
> > try:
> > # Do something dangerous...
> > result = whatever...
> > except Exception:
> > # Handle the problems...
> > result = better result...
> > np.seterr(**saved)
> > return result
> >
>
> Ha. I knew I was forgetting something. Thanks.
>
>
Your question reminded me to file an enhancement request that I've been
meaning to suggest for a while:
http://projects.scipy.org/numpy/ticket/1667
Warren
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20101108/9fe8e4f1/attachment.html
More information about the NumPy-Discussion
mailing list