Math.Atan2(double.NegativeInfinity, double.PositiveInfinity) - 错误或未记录的重大更改?

Math.Atan2(double.NegativeInfinity, double.PositiveInfinity) - bug, or undocumented breaking change?

考虑 double result = Math.Atan2(double.NegativeInfinity, double.PositiveInfinity);

在 .net 4.8 中这个 returns NaN.

在 .net Core 3.1 或更高版本中这个 returns -0.7853981633974483.

documentation for Math.Atan2() 状态:

If x or y is NaN, or if x and y are either PositiveInfinity or NegativeInfinity, the method returns NaN.

我想“PositiveInfinity 或 NegativeInfinity”可能意味着“both PositiveInfinity 或 both NegativeInfinity”,在这种情况下它不适用于我的示例(因为 x 是 NegativeInfinity 而 y 是 PositiveInfinity)但这看起来相当微妙 - 在任何情况下,它似乎仍然是一个错误或重大更改。

这是错误还是未记录的重大更改 - 或者我只是误会了事情?

(我发现这一点是因为在将我们的一个单元测试库移植到 .net 5 之后,一些单元测试由于这种行为变化而开始失败。)

这看起来是 a fix of a mismatch between the old behaviour and the IEEE 754 specified behaviour 的结果。但是文档还没有跟上新的行为。