[Numpy-discussion] Behavior of rint?

Charles R Harris charlesr.harris at gmail.com
Fri Jan 19 08:51:28 EST 2018


On Fri, Jan 19, 2018 at 6:41 AM, Charles R Harris <charlesr.harris at gmail.com
> wrote:

>
>
> On Fri, Jan 19, 2018 at 3:30 AM, Matthew Brett <matthew.brett at gmail.com>
> wrote:
>
>> Hi,
>>
>> Sorry for my confusion, but I noticed (as a result of the discussion
>> here [1]) that np.rint and the fallback C function [2] seem to round
>> to even.  But - my impression was that C rint, by default, rounds down
>> [3].   Is numpy rint not behaving the same way as the GNU C library
>> rint?
>>
>> In [4]: np.rint(np.arange(0.5, 11))
>> Out[4]: array([ 0.,  2.,  2.,  4.,  4.,  6.,  6.,  8.,  8., 10., 10.])
>>
>> In [5]: np.round(np.arange(0.5, 11))
>> Out[5]: array([ 0.,  2.,  2.,  4.,  4.,  6.,  6.,  8.,  8., 10., 10.])
>>
>
> The GNU C documentation says that rint "round(s) x to an integer value
> according to the current rounding mode." The rounding mode is determined by
> settings in the FPU control word. Numpy runs with it set to round to even,
> although, IIRC, there is a bug on windows where the library is not setting
> those  bits correctly.
>

Round to even is also the Python default rounding mode.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20180119/c2fec009/attachment-0001.html>


More information about the NumPy-Discussion mailing list