Live data from Hacker News

Faster Argmin on Floats

algorithmiker.github.io

11–12 of 12 posts

Re: Faster Argmin on Floats

#11
Another speed up method here would be using simd, although it would be interesting to see in the assembly if it was auto-vectorized already.

This reminds me of a trick to sort floats faster, even if they have negatives, nans, and inf: map each float to a sortable int version of itself where one can compare them as ints (the precise mapping depending on how you want to order stuff like Nan). The one time conversion is fast and will pay off for the lg(n) comparisons. Then after sorting, map them back.

Re: Faster Argmin on Floats

#12
post #4

How fast if you write a for loop and keep track of the index and value of the smallest (possibly treating them as ints)?

I hazard to guess that it would be the same, because the compiler would produce a loop out of .iter(), would expose the loop index via .enumerate(), and would keep track of that index in .min_by(). I suppose the lambda would be inlined, maybe even along with comparisons. I wonder could that be made faster by using AVX instructions; they allow to find the minimum value among several u32 values, but not immediately its…

But how is that slower than sorting the list?!
Post reply on HN