2 つの浮動小数点数が同一かどうかを判断するには、多くのアプローチがあるようです。ここに私が見つけたいくつかの例があります:
fabs(x - y) < n * FLT_EPSILON * fabs(x)
またfabs(x - y) < n * FLT_EPSILON * fabs(y)
fabs(x - y) < n * FLT_EPSILON * fabs(x + y)
fabs(x - y) < n * FLT_EPSILON * fabs(x + y) || fabs(x - y) < FLT_MIN)
fabs(x - y) / sqrt(x * x + y * y + FLT_EPSILON * FLT_EPSILON) < n * FLT_EPSILON
私はそれらについて本当に混乱しています。2 つの浮動小数点数を比較する最良の方法があり、それが最も高速で最も正確であると仮定すると、他のアプローチは存在しません。したがって、これらのさまざまな方法には、それぞれ長所と短所があるはずです。
私の質問は次のとおりです。最速/最も正確/最も実用的なアプローチはどれですか?
参照リンク:
http://accu.org/index.php/journals/1558 (1 と 4)
https://stackoverflow.com/a/10335601/5399734 (2 および 3)
明確化: 少なくとも、「最速/最も正確」は主に意見に基づくものではないと思います。