【发布时间】:2012-11-05 18:24:34
【问题描述】:
这是一个非常简单的问题:为什么 pi、pi/2、pi/4、1/pi 和 2/pi 有 predefined constants 而 2*pi 没有?是不是有更深层次的原因?
这个问题不是关于整个pi vs tau debate。我想知道是否有实现某些常量而不是其他常量的技术原因。我能想到两种可能:
- 避免舍入错误。
- 避免可能更昂贵的运行时划分。
【问题讨论】:
-
你想用
2*pi做什么?大多数三角函数,例如,在2*pi之后“重复”(具有2*pi的平移对称性)。 (更正式地,例如,sin(a) = sin(b)ifa = b (mod 2*pi)。)这使得在用作这些函数的参数的数字中添加或减去2*pi毫无用处。 -
@MvanGeest 有很多用例。从正态分布、快速傅里叶变换、柯西积分开始怎么样?
-
他们为什么不同时定义
3*pi、12*pi和-4*pi?这个问题要求进行没有明确答案的讨论,除非math.h的原作者之一碰巧停下来回答它。抱歉,但投票结束是不具建设性的; FAQ 特别提到讨论和推测类型的问题不适合这里的设计。 -
@Ken:或者其中一位作者在其他地方回答过,有人可以找到该答案并参考它。我真的不明白为什么人们认为标准的基本原理问题是无法回答的——会议(有点)被记录了。
-
我很在意,因为我每天输入这个常数大约 100 次。