首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ieee双倍使sqrt(x*x)≠x

ieee双倍使sqrt(x*x)≠x
EN

Stack Overflow用户
提问于 2018-05-21 01:52:04
回答 1查看 0关注 0票数 0

有ieee的双人间吗?x>0使.sqrt(x*x) ≠ x,在计算的条件下x*x不会溢出或下溢到Inf0,还是一个正常数?

这是因为sqrt返回最近的可表示结果,也是如此。x*x(正如ieee标准所规定的那样,“平方根运算的计算方法应该是无限精确的,然后舍入到围绕无限精确结果的指定精度的两个最近的浮点数之一”)。

假设如果存在这样的双倍,那么可能有接近1的例子,我编写了一个程序来查找这些反例,但是它没有在1.01.0000004780981346

EN

回答 1

Stack Overflow用户

发布于 2018-05-21 11:30:06

引用该条的摘要:

浮点专家知道,当用浮点算法实现时,数学公式可能会失败或给出不精确的结果。实际上,使用基2和无界指数范围,浮点数a的平方根的计算精确地是x_a_x。其结果是a/sqrt(a2+b2)的浮点计算总是在区间内。−1,1。这消除了在此值上调用ARccOS或arcsin时对测试的需要。为了获得更多的保证,使用Coq验证助手和Flocq库对该属性进行了正式检查。这一结论将暗示在没有假设的情况下发生了什么,以及在其他的Radice中,那里的行为是非常不同的。

“使用基2”很可能隐含在您的问题中(尽管ieee也标准化了十进制浮点数格式和操作),并且“无界指数范围”相当于你的“无溢出或下溢”限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档