Java でこのスニペットを見てください。
double alpha = alphaFactors.get(0, q);
double beta = betaFactors.get(0, q);
if ((alpha + beta) > Double.NEGATIVE_INFINITY) {
initialDistributionStripe.put(new IntWritable(q),
new DoubleWritable(alpha + beta));
}
ガベージ値を回避するために、Double.NEGATIVE_INFINITY よりも大きく、NaN と等しくない場合にのみ、initialDistributionStripe マップに合計 (アルファ + ベータ) を追加します。
IEEE 754 および Java 仕様によると、NaN との比較はすべて false になるため、「NaN」を明示的にチェックする必要はありません。したがって、アルファ + ベータが NaN の場合((alpha + beta) > Double.NEGATIVE_INFINITY)
は false になります。
私の推論は正しいですか?