Hasty Briefsbeta

双语

Faster Argmin on Floats

8 months ago
  • #performance
  • #floating-point
  • #optimization
  • 问题:在一个大型数组中找出最小浮点数的索引,所有值均为正数或+0,非无穷大且非NaN。
  • 第一种解决方案:使用`total_cmp`进行比较,处理一百万个数字耗时约511微秒。
  • 第二种解决方案:通过自然偏序实现自定义比较器,耗时约489微秒。
  • 第三种解决方案:使用`partial_cmp`并直接解包,稍快一些,约470微秒。
  • 第四种解决方案:通过比较`u32`位模式利用浮点数表示特性,最快仅需370微秒(提速30%)。
  • 提供基准测试程序以对比各方案性能。