Hi, On Fri, Jan 19, 2018 at 3:24 PM, Charles R Harris <charlesr.har...@gmail.com> wrote: > > > On Fri, Jan 19, 2018 at 7:48 AM, Matthew Brett <matthew.br...@gmail.com> > wrote: >> >> Hi Chuck, >> >> Thanks for the replies, they are very helpful. >> >> On Fri, Jan 19, 2018 at 1:51 PM, Charles R Harris >> <charlesr.har...@gmail.com> wrote: >> > >> > >> > On Fri, Jan 19, 2018 at 6:41 AM, Charles R Harris >> > <charlesr.har...@gmail.com> wrote: >> >> >> >> >> >> >> >> On Fri, Jan 19, 2018 at 3:30 AM, Matthew Brett >> >> <matthew.br...@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. >> >> Do you mean that it is Python setting the FPU control word? Or do we >> set it? Do you happen to know where that is in the source? I did a >> quick grep just now without anything obvious. > > > I can't find official (PEP) documentation, but googling indicates that in > Python 3, `round` rounds to even, and in Python 2 it rounds up. See also > https://docs.python.org/3/whatsnew/3.0.html.
But I guess this could be the Python implementation of round, rather than rint and the FPU control word? I'm asking because the question arose about npy_rint at the C level ... Cheers, Matthew _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion