Assembly 鼻窦可伸缩吗?

Assembly 鼻窦可伸缩吗?,assembly,numbers,fpu,x87,Assembly,Numbers,Fpu,X87,这里我所说的窦是指c stdlib sin()/fpu汇编;y fsin 我可以用16个小数点来表示这个正弦参数 数字预见或更多,例如sin(1.1e-14); sin(1.2e-14)然后得到结果 在这样小的三角洲上,窦几乎是线性的,但尽管 也可以用相同的16位精度计算, 在这样小的三角洲上也算过吗 (我问这件事是因为它在一段时间内对我来说有点不寻常 计算它的参数和输出的精确性 值,所以我想知道它是不是被削减了或是什么)sin(x)=x-x^3/3!+x^5/5!- 任何数字0>x>1在基数1

这里我所说的窦是指c stdlib sin()/fpu汇编;y fsin

我可以用16个小数点来表示这个正弦参数 数字预见或更多,例如sin(1.1e-14); sin(1.2e-14)然后得到结果

在这样小的三角洲上,窦几乎是线性的,但尽管 也可以用相同的16位精度计算, 在这样小的三角洲上也算过吗

(我问这件事是因为它在一段时间内对我来说有点不寻常 计算它的参数和输出的精确性 值,所以我想知道它是不是被削减了或是什么)

sin(x)=x-x^3/3!+x^5/5!-

任何数字0>x>1在基数10中表示为

x=a*10^-n,其中1sin(x)=x-x^3/3!+x^5/5!-

任何数字0>x>1在基数10中表示为


x=a*10^-n,其中1IIRC,当大于9e18且正数小于9e-18时,它开始失败。这是CPU的一个限制


详细信息可在8.1.3.2条件代码标志下阅读,条件代码标志指定FSIN和friends的限制。

IIRC,当大于9e18且小于9e-18(正数)时,它开始失败。这是CPU的一个限制



详细信息可在8.1.3.2条件代码标志下阅读,该标志指定FSIN和friends的限制。

在浮点世界中,没有精确计算的内容。嗯,几乎没什么。我的意思不完全是指“完全”,仅供参考,在英语中正确的术语是“正弦”(或“正弦函数”)。伊戈尔,你能解释一下说正弦而不是正弦的语言逻辑吗?窦房结是拉丁语术语,在大多数欧洲语言中使用。也许正弦是非正式的?在浮点世界中,没有什么是精确计算的。嗯,几乎没什么。我的意思不完全是指“完全”,仅供参考,在英语中正确的术语是“正弦”(或“正弦函数”)。伊戈尔,你能解释一下说正弦而不是正弦的语言逻辑吗?窦房结是拉丁语术语,在大多数欧洲语言中使用。也许正弦是非正式的?所以,它在完整的“长双入长双出”域中不是完全精确的?或者它是?看看上面的泰勒系列,你可以看到你可以使近似值尽可能精确。因此,它也可能找到一个最佳的近似条件,无穷精度的数字系统。这仅仅取决于函数sin的实现方式。@AkiSuihkonen:你能解释一下第二和第三个方程吗?我看不到泰勒级数的结束步骤。什么是
a
,什么是
n
?提前感谢。x=(1+a)*2^n(或-n)是概括任意数字x的一种方法。如果以基数2表示的x足够小,则无穷泰勒级数的第二部分和第三部分与浮点数的尾数相比会变得非常小,以至于它们只能用64位、128位甚至2000位浮点数表示。对于有限浮点数系统,最终会有一个非常小的数,所有的泰勒级数都是泰勒级数。我不明白为什么C fsin会基于泰勒级数,这会非常不准确?你能断言为什么fsin是基于这样一个不准确的近似值,而它是为32位处理器设计的吗?所以,它在完整的“长双入长双出”域中并不完全精确?或者它是?看看上面的泰勒系列,你可以看到你可以使近似值尽可能精确。因此,它也可能找到一个最佳的近似条件,无穷精度的数字系统。这仅仅取决于函数sin的实现方式。@AkiSuihkonen:你能解释一下第二和第三个方程吗?我看不到泰勒级数的结束步骤。什么是
a
,什么是
n
?提前感谢。x=(1+a)*2^n(或-n)是概括任意数字x的一种方法。如果以基数2表示的x足够小,则无穷泰勒级数的第二部分和第三部分与浮点数的尾数相比会变得非常小,以至于它们只能用64位、128位甚至2000位浮点数表示。对于有限浮点数系统,最终会有一个非常小的数,所有的泰勒级数都是泰勒级数。我不明白为什么C fsin会基于泰勒级数,这会非常不准确?当fsin用于32位处理器时,你能断言为什么它是基于这样一个不准确的近似值吗?听起来比泰勒级数的答案更具参考价值。是的,但另一个答案中的分析(以及下面投票的注释)实际上证明了原因。听起来比泰勒级数的答案更具参考价值。是的,但另一个答案中的分析(以及下面投票的评论)实际上证明了原因。
   0.003000000000000000 = 10^-3 * 3000000000000000  <-- x
 - 0,000000004500000000 = 10^-3 * 0000004500000000  <-- x^3/3!
 + 0,000000000000002025 = 10^-3 * 0000000000002025  <-- x^5/5!
 ----------------------   -----------------------------
 = 0.002999995500002025 = 10^-3 * 2999995500002025