[Numpy-discussion] sorting and nans, timings.
Thu Jul 23 01:43:08 CDT 2009
Charles R Harris wrote:
> Hi All,
> I changed the sort routines to sort nans to the end and got some
> timings. Sorting 100000 random doubles 100 times yields:
> current nan version
> quicksort 1.17 sec 1.29 sec
> mergesort 1.37 sec 1.36 sec
> heapsort 1.83 sec 2.12 sec
> Curiously, mergesort doesn't seem to suffer at all. This is using x !=
> x for nan detection, using npy_isnan is notably slower with my
> compiler (gcc 4.3.0).
That's because glibc isnan is slow :) I was surprised, but our own isnan
replacement is much faster than the glibc one at least (like almost
twice as fast on my P4 machine). Glibc isnan avoids branching, but it
seems that it tries too hard.
More information about the NumPy-Discussion