Rustにおける浮動小数点数のargminを求める4つの方法(とパフォーマンス)
2025-09-20
この記事では、Rustで大きな浮動小数点数の配列の中で最小値のインデックスを高速に求める4つの方法について解説します。1つ目の方法は`min_by`と`total_cmp`を使用し、511マイクロ秒かかります。2つ目の方法は`reduce`を使用し、489マイクロ秒かかります。3つ目の方法は`partial_cmp`を使用し、470マイクロ秒かかります。4つ目の方法は、正の浮動小数点数のビット表現を利用して`u32`に変換して比較を行い、わずか370マイクロ秒で完了し、30%の高速化を実現します。4つ目の方法は、正の数のみを含む配列に対して最も効率的で、浮動小数点数の内部表現を巧みに利用することで、複雑な比較を回避します。
開発