现代FPU会使用什么方法来计算超越函数?
例如,英特尔CPU提供诸如FSIN
、FCOS
、FYL2X
等指令。我很好奇会使用什么算法在硬件中实际实现这些。
我天真的猜测是泰勒系列可能会与一些查找表相结合,但这只不过是一个疯狂的猜测。请开导我。
附言这个问题比英特尔硬件更笼统。
一个起点可以是"改进的新算法"IA-64上的超越功能",由Shane Story和Ping Tak Peter Tang撰写,均来自英特尔。它可能没有您想要的那么多细节,但它包括几个参考。
更新 08/13/2014
原始链接已断开。IEEE的公共摘要/引文页面可以在这里找到:
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=762822&tag=1
在硬件(以及硬件乘法指令不可用的软件)中,它通常在CORDIC中实现,因为这只需要加法,减法,位移和表查找
相关:
- C 如何计算 sin() 和其他数学函数?
- 罪恶和cos是如何实现硬件的?
- 计算机使用什么算法来计算对数?
- 计算机如何计算罪恶值?
- 计算机如何计算平方根?