相关疑难解决方法(0)

当另一个公式似乎更有意义时,为什么基于表格的sin近似文献总是使用这个公式?

关于sin用表格计算基本函数的文献参考公式:

sin(x) = sin(Cn) * cos(h) + cos(Cn) * sin(h)
Run Code Online (Sandbox Code Playgroud)

其中x = Cn + h,Cn是针对其恒定sin(Cn)cos(Cn)已被预先计算并在表中可用的,并且,如果以下半乳糖的方法,Cn已被选择为使得两个sin(Cn)cos(Cn)密切由浮点数近似.数量h接近0.0.此公式的参考示例是本文(第7页).

我不明白为什么这是有道理的:cos(h)然而,它被计算,对于某些值,至少0.5 ULP可能是错误的h,并且因为它接近1.0,这似乎对结果的准确性有极大的影响.sin(x)以这种方式计算.

我不明白为什么不使用下面的公式:

sin(x) = sin(Cn) + (sin(Cn) * (cos(h) - 1.0) + cos(Cn) * sin(h))
Run Code Online (Sandbox Code Playgroud)

然后两个量(cos(h) - 1.0),并sin(h)可以用,很容易做出准确的,因为它们产生接近零的结果多项式来近似.为价值观sin(Cn) * (cos(h) - 1.0), cos(Cn) * sin(h)并为他们的总和仍然很小,其绝对精度,该总和表示,因此,加入这个量的少量ULPS表达sin(Cn)几乎是正确舍入. …

floating-point ieee-754 elementary-functions

15
推荐指数
2
解决办法
765
查看次数

Swift中的浮点十六进制表示法

我不明白浮点数是如何用Swift中的十六进制表示法表示的.Apple的文档显示0xC.3p0等于十进制的12.1875.有人可以告诉我如何进行转换吗?我明白在十进制十六进制值0xC = 12之前.小数点后的3p0是我难倒的地方.

hex swift

4
推荐指数
2
解决办法
1778
查看次数

将浮点值序列化为字符串时是否存在错误传播?

说我用我喜欢的语言有一个浮动(或双重).假设在内存中这个值是根据IEEE 754存储的,比如我用XML或JSON或使用基数10的纯文本序列化这个值.当序列化和反序列化这个值时,我会丢失我的数字的精度吗?我什么时候应该关心这种精确损失?

将数字转换为base64可以防止精度损失吗?

language-agnostic floating-point

1
推荐指数
1
解决办法
152
查看次数