现代 FPU 将使用哪些方法来计算超越函数?
例如,英特尔 CPU 提供诸如FSIN
、FCOS
、FYL2X
等指令。我很好奇将使用哪些算法在硬件中实际实现这些指令。
我的天真猜测可能是泰勒级数可能与一些查找表相结合,但这只不过是一个疯狂的猜测。请赐教。
PS这个问题比英特尔硬件更笼统。
现代 FPU 将使用哪些方法来计算超越函数?
例如,英特尔 CPU 提供诸如FSIN
、FCOS
、FYL2X
等指令。我很好奇将使用哪些算法在硬件中实际实现这些指令。
我的天真猜测可能是泰勒级数可能与一些查找表相结合,但这只不过是一个疯狂的猜测。请赐教。
PS这个问题比英特尔硬件更笼统。
一个起点可以是来自英特尔的 Shane Story 和 Ping Tak Peter Tang 的“ IA-64 上改进的超越函数的新算法”。它可能没有您想要的那么多细节,但它包含几个参考。
原来的链接坏了。IEEE 的公共摘要/引文页面可在此处找到:
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=762822&tag=1
在硬件(以及硬件乘法指令不可用的软件)中,它通常在CORDIC中实现,因为这只需要加法、减法、位移位和表查找
有关的: