限制传递给三角函数的角度有什么好处吗?

Ale*_*pin 3 javascript math optimization trigonometry

我想知道是否有任何优势来夹住传递给三角函数的角度0Math.PI * 2?我有一个大量使用三角函数的函数,项目中有人将其添加到了开头:

angle %= Math.PI * 2;
Run Code Online (Sandbox Code Playgroud)

这有什么好处吗?如果角度超过这些值,三角函数会更快吗?如果是这样,他们不应该自己夹住它吗?还有其他情况应该夹紧等效角度吗?

该语言是JavaScript,最有可能在V8和SpiderMonkey上运行.

Ale*_* C. 7

由于用于计算三角函数的大多数(on-die)算法使用CORDIC的一些变体,我的赌注是这些值在trig函数调用的入口点无论如何都被钳位在[0,Pi/2]内.

话虽如此,如果你有办法在整个算法中保持角度接近于零,那么这样做可能是明智之举.实际上,sin(10 ^ 42)的值几乎是不确定的,因为10 ^ 42范围内的粒度大约为10 ^ 25.

这意味着,例如,如果要添加角度,如果这样做,它们可能会变大,那么您应该考虑定期夹紧它们.但是在三角函数调用之前将它们钳制是不必要的.