看看 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 时,我想将总和 (alpha + beta) 添加到 initialDistributionStripe 映射。
我相信我所做的是正确的,我不需要明确检查“NaN”,因为根据 IEEE 754 和 Java 规范,任何与 NaN 的比较都会导致错误。因此,如果 alpha + beta 为 NaN,则为((alpha + beta) > Double.NEGATIVE_INFINITY)
false。
我的推理正确吗?