为什么幂函数通常被计算为对数

Why a power function is often computed as a logarithm?

本文关键字:计算 函数 为什么      更新时间:2023-10-16

我正在研究一些x86 ASM代码和代码真正做什么,这是我的理解,power函数(x^y)内部工作作为对数函数。我所说的内部是指CPU寄存器。

为什么会这样?好处是什么?这是其他高级语言(如c++)可以复制和借鉴的优点吗?

你应该看看这个MATH,

答案说的是对数函数可以通过泰勒级数和查找表相结合来实现。如果存在查找表,则可以对其进行哈希,查找比只能通过计算获得的pow更容易。

对于xy可以写成

y = log<sub>10</sub> x . 

y = (ln x)/(ln 10);

如果pow没有日志实现,那么它应该通过加法链求 Wiki实现,这需要运行时计算,可能比查找日志需要更长的时间。

编辑:感谢@harold,使用进行平方运算可以更优化地执行幂运算。

查看这个问题的答案:How to: pow(real, real) in x86

回想一下你的对数法则:2的底与log2(x)约掉,只剩下x^y。

编辑:我们有一条x86指令来计算所需的每个组件。