[SciPy-User] overflow

Mr Nilsson super.inframan@gmail....
Sat Jul 10 18:00:20 CDT 2010


Hm well the reason im going 8/16 bit in the first place is to conserve
memory, so going back to float isnt optimal..
Is there a reason numpy overflows in the first place? Coming from an
image processing background i cant really think of any situation where
it would be preferable, possibly other than performance?

thanks for the help,
Gusty

On 10 July, 23:10, Charles R Harris <charlesr.har...@gmail.com> wrote:
> On Sat, Jul 10, 2010 at 3:43 PM, Sebastian Haase <seb.ha...@gmail.com>wrote:
>
>
>
>
>
> > On Sat, Jul 10, 2010 at 11:28 PM, Sturla Molden <stu...@molden.no> wrote:
> > > Mr Nilsson skrev:
> > >> Is there a way to have numpy clip the values to the maximum value of
> > >> whatever dtype is used instead of overflowing?
>
> > > Subclass the scalar np.uint8, and change how multiplication works to
> > > something like this:
>
> > > inline npy_uint8 multiply(npy_uint8 a, npy_uint8 b)
> > > {
> > >    npy_unit32 tmp = b;
> > >    tmp *= a;
> > >    return (npy_uint8)((tmp >> 2) ? 0xFF : tmp);
> > > }
>
> > This does not sound like an easy solution ...
> > First: How to sub-class a basic thing like this  .... this looks like
> > it's happening on the C level ... !?
> > Second: there are probably quite a lot of functions to take care of ...
>
> > Could numexpr be helpful for this - if memory is an issue ?
> > If memory is no issue, it probably the easiest solution to just
> > (explicitly) convert to float32 and only as last step convert back to
> > uint8.
>
> That's what I would recommend as the minimal work approach if memory isn't
> an issue.
>
> Chuck
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-U...@scipy.orghttp://mail.scipy.org/mailman/listinfo/scipy-user


More information about the SciPy-User mailing list