首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制传递给三角函数的角度有什么好处吗?

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

Stack Overflow用户
提问于 2011-09-07 23:12:20
回答 2查看 248关注 0票数 3

我想知道在0Math.PI * 2之间夹住传递给三角函数的角度是否有什么好处?我有一个函数,它大量使用了三角函数,项目中的某个人将这个添加到了乞讨中:

代码语言:javascript
复制
angle %= Math.PI * 2;

这样做有什么好处吗?如果传递的角度在这些值之间,三角函数会更快吗?如果是这样,他们不是应该自己夹住它吗?是否有任何其他情况下应夹紧等同角度?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-07 23:16:47

由于大多数(芯片上)计算三角函数的算法使用CORDIC的一些变体,我打赌这些值无论如何都会在trig函数调用的入口点被钳制在[0,Pi/2]内。

也就是说,如果你有办法在整个算法中保持角度接近于零,那么这样做可能是明智的。实际上,sin( 10^42 )的值几乎没有定义,因为10^42范围内的粒度大约是10^25。

这意味着,例如,如果您要添加角度,并且通过这样做,它们可能会变得很大,那么您应该考虑定期夹紧它们。但是没有必要在三角函数调用之前将它们夹住。

票数 7
EN

Stack Overflow用户

发布于 2014-06-08 02:15:52

将角度限制在- pi /4到pi/4 (根据需要使用正弦或余弦)范围内的优点是,可以确保如果使用pi的某个近似值计算角度,则会使用相同的近似值执行范围缩减。这样的方法有两个好处:它将提高像180度的正弦或90度的余弦这样的东西的精度,并且它将避免让数学库浪费计算周期,以努力通过与计算角度时使用的pi不匹配的pi来执行超精确的范围缩减。

例如,考虑2⁴⁸* pi的正弦。π的最佳double近似值是884279719003555,乘以2^48,这也是2⁴⁸π的最佳双近似值。2⁴⁸π的实际值是884279719003555.03447074。Mod-通过pi的最佳双重逼近将前一个值减去最佳双重逼近,将产生零,其正弦等于2⁴⁸π的正确正弦。Mod-通过π减小由pi的最佳近似放大的值将产生-0.03447074,其正弦值为-0.03446278。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7336243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档