为什么atan2
是RealFloat
类的一部分,而不是Floating
类(名称有点奇怪)的一部分?
我看不出它在逻辑上如何依赖于Real
(我认为这是一类不抽象的数字,从某种意义上说,它们可以转换为自己的某种Rational
近似值)。
我也不明白为什么它与RealFloat
的任何其他成员有关,这些成员与打包和拆包指数/尾数表示有关。
(潜在的亲密选民:我不仅仅是在咆哮哈斯克尔数字塔。我真的认为这个问题有答案,我只是把注意力放错了地方。)
我想这将来自于如何处理复数。atan2
函数用于(x, y)
坐标,但这不适用于复数值,因为两个复数值表示的信息量与4个实数值相同。atan2
对复数来说没有任何意义,但atan
确实有意义。由于atan2
对于任何处理角度的程序来说都是一个非常重要的函数,它在RealFloat
中的位置很可能是由于实用性,而不是纯粹的数学。