trig功能的计算成本

ack*_*ack 19 math optimization trigonometry

可能重复:
三角函数如何工作?

什么实际上用于计算三角函数,如Sin,Cos,Tan和Atan?

我想我已经在我的代码中找到了一个优化,我可以避免使用任何这些函数,并将问题基于斜率而不是角度.这意味着代替上述trig函数的一对除法运算.但我想更多地了解那些触发函数的内容,以便我可以比较我的新代码(从基本数学运算的数量的角度来看).或许我刚刚发现了一种更迂回的做同样事情的方式,或者更糟糕的是,引入了一种效率较低的方法.

使用C++和Python但我认为这些与语言无关,数学运算成本与最原始的操作相关.

Pet*_*ter 9

您需要分析您的代码!

你需要自己剖析一下.根据我的结果,触发功能大约需要100 ns,分​​割大约需要20 ns.这可以很容易地转换为答案.但同样,最重要的是你在硬件上进行了分析.这样您就可以获得适合您系统的正确答案和知识.

  • 当然,这将完成工作,但它不会真正告诉我为什么它更快. (5认同)

Oli*_*rth 6

现代x86处理器在其指令集中包含trig函数,但它们需要很多周期才能执行.所以如果你在这样的处理器上,并且如果你的代码没有依赖关系(即你不需要一次罪计算的结果来启动下一个),那么你可能不会更快而不是直接使用sin和cos,因为它们将完全流水线化,实现每周期1的有效速率.

  • 我相信完整的触发功能比每个周期慢1.您可以在等待trig函数完成时执行其他操作,但是trig操作本身不会以这种方式进行流水线操作. (4认同)