gpt4 book ai didi

assembly - 指令 FYL2XP1

转载 作者:行者123 更新时间:2023-12-03 19:46:12 28 4
gpt4 key购买 nike

我想知道为什么指令 FYL2XP1在 x86 架构上精确计算数学公式 y · log2(x + 1)。

这个公式有什么特别之处?

最佳答案

y操作数通常是编译时常量,暂时忘记 x + 1 .

log_b(x) = log_b(2) * log_2(x)该指令允许计算以 x + 1 为底的对数.
请注意 log_b(2)是一个常数,因为很少需要以自由度为底来计算对数。
FYL2XP1FYL2X是计算对数的仅有的两条 x87 指令。
如果对数是代数函数,一条指令就足够了,但由于它是超越的,英特尔给出了两个版本。
FYL2X适用于对数的整个域,但在整个范围内并不完全准确,特别是对于 x 的非常小的值。 (可能更慢,我相信它必须缩小范围,使用截断的泰勒展开或 Padé 近似,而不是通过表查找来提高准确性)。
FYL2XP1而是仅适用于小范围内的输入 ±( 1 – sqrt(2) ⁄ 2 )。
这应该更快(不减少范围),更重要的是,对于给定的输入范围,所使用的近似方法的精度应等于或大于 x87 80 位浮点精度。

This instruction provides optimal accuracy for values of epsilon [the value in register ST(0)] that are close to 0. For small epsilon (ε) values, more significant digits can be retained by using the FYL2XP1 instruction than by using (ε+1) as an argument to the FYL2X instruction.



@Mysticial's comment is a spot on : FYL2X使用的算法在所有其他必要步骤之后,可能正在使用 log(x + 1) 的近似公式.
将其转换为 log(x) 的公式输入必须减一。一个 x - 1如果 x,操作将失去精度非常小(因为两个数字的指数差异很大,会将 x 的大部分数字向右移动)。 FYL2XP1不会做 x - 1并且不会失去精度。

关于assembly - 指令 FYL2XP1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52736011/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com