[Numpy-discussion] abs for max negative integers - desired behavior?

Benjamin Root ben.root at ou.edu
Tue Oct 11 19:13:06 EDT 2011


On Tue, Oct 11, 2011 at 2:51 PM, Matthew Brett <matthew.brett at gmail.com>wrote:

> Hi
>
> On Tue, Oct 11, 2011 at 3:16 PM, Charles R Harris
> <charlesr.harris at gmail.com> wrote:
> >
> >
> > On Tue, Oct 11, 2011 at 12:23 PM, Matthew Brett <matthew.brett at gmail.com
> >
> > wrote:
> >>
> >> Hi,
> >>
> >> I recently ran into this:
> >>
> >> In [68]: arr = np.array(-128, np.int8)
> >>
> >> In [69]: arr
> >> Out[69]: array(-128, dtype=int8)
> >>
> >> In [70]: np.abs(arr)
> >> Out[70]: -128
> >>
> >
> > This has come up for discussion before, but no consensus was ever
> reached.
> > One solution is for abs to return an unsigned type, but then combining
> that
> > with signed type of the same number of bits will cause both to be cast to
> > higher precision. IIRC, matlab was said to return +127 as abs(-128),
> which,
> > if true, is quite curious.
>
> octave-3.2.3:1> a = int8([-128, 127])
> a =
>
>  -128  127
>
> octave-3.2.3:2> abs(a)
> ans =
>
>  127  127
>
> Matlab is the same.  That is curious...
>
> See you,
>
> Matthew
>

Well, it _is_ only off by 0.78%. That should be good enough for government
work, right?

Ben Root
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20111011/350c117c/attachment.html>


More information about the NumPy-Discussion mailing list