[Numpy-discussion] Behavior of rint?

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


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.

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


More information about the NumPy-Discussion mailing list