关于 NaN 运算的问题

2023-11-24

我的 SSE-FPU 生成以下 NaN:

  • 当我执行任何基本的对偶运算(如 ADDSD、SUBSD、MULSD 或 DIVSD)并且两个操作数之一为 NaN 时,结果具有 NaN 操作数的符号,并且结果尾数的低 51 位将加载NaN 操作数尾数的低 51 位。
  • 当两个操作均为 NaN 时,结果将加载目标寄存器的符号,结果尾数的低 51 位将在操作之前加载目标寄存器的低 51 位。因此,当对两个 NaN 操作数进行乘法时,结合律不起作用!
  • 当我对 NaN 值执行 SQRTSD 时,结果具有 NaN 操作数的符号,并且结果的低 51 位会加载操作数的低 51 位。
  • 当我将无穷大与零或无穷大相乘时,结果总是得到 -NaN (二进制表示形式 0xFFF8000000000000u)。
  • 如果任何操作数是信号 NaN,并且未屏蔽异常,则结果将变为安静 NaN。

IEEE-754 标准中是否已确定此行为?


NaN have a sign and a payload,一起称为NaN 中包含的信息.
NaN 的全部要点在于它们是“粘性的”(也许 Monadic 是一个更好的术语?),一旦我们在表达式中包含 NaN,整个表达式就会计算为 NaN。
在评估谓词(如二元关系)时,NaN 也会被特殊对待,例如,如果a是 NaN,则它不等于其自身。

Point 1
来自 IEEE 754:

诊断信息的传播需要该信息 通过算术运算保留 NaN 中包含的内容 浮点格式转换。

Point 2
来自 IEEE 754:

每个操作都涉及一个或两个输入 NaN,它们都没有信号, 不应发出异常信号,但是,如果要传递浮点结果, 应提供一个安静的 NaN 作为其结果,它应该是输入之一 NaN。

浮点运算从未具有关联性。
我想您正在寻找这个词可交换的但由于结合性需要至少涉及三个操作数。

Point 3
见第4点

Point 4
来自 IEEE 754:

无效的操作是
1. 对信号 NaN 的任何操作 (6.2)
2. 加法或减法 – 无穷大的幅度减法,例如, (+无穷大) + (-无穷大)
3. 乘法 – 0 × INFINITY
4. 除法 – 0/0 或 INFINITY/INFINITY
5. 余数 – x REM y,其中 y 为零或 x 无穷大
6. 如果操作数小于零则求平方根
7. 将二进制浮点数转换为整数或 当溢出、无穷大或 NaN 排除忠实时的十进制格式 以该格式表示,并且不能以其他方式表示
8. 通过涉及 的谓词进行比较,不带 ?,when 操作数是无序的(5.7,表 4)

Point 5
来自 IEEE 754:

每个涉及信令 NaN 或无效操作 (7.1) 的操作应,如果 没有陷阱发生,如果要传递浮点结果,则传递一个安静的结果 结果为 NaN。


由于其相关性,可以找到 IEEE 754 标准here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于 NaN 运算的问题 的相关文章

随机推荐

  • 错误! “sudo”不是 Play 的有效属性

    我有一个 ansible 播放文件 它必须执行两个任务 第一个任务是在本地计算机上获取磁盘使用情况 另一个任务是获取远程计算机的磁盘使用情况并在远程计算机中安装 apache2 当我尝试运行该文件时出现错误 错误 sudo 不是 Play
  • 带有 json 正文的 Swagger POST

    我正在尝试使用 swagger 编写服务器响应的静态 json 文件 我被帖子正文困住了 不知道如何描述它 它看起来与 Grooveshark api 非常相似 其中有一个页面和不同的帖子参数 因此 给出grooveshark的例子 htt
  • 对 CollectionViewSource 感到困惑(SelectedItem 无法在组合中工作)

    我有一堆组合 它们都共享相同的可用选项 这些选择在我的 ViewModel 公开的集合中提供 一切都很好 花花公子 我现在想要对这些选择进行排序 所以我决定公开一个ICollectionView来自我的 ViewModel 而不是我平常的R
  • 将 plupload 与 MVC3 结合使用

    因此 我在 MVC3 中使用 flash 运行时实现了 plupload 它工作完美 因为它使用更正操作上传并运行全部内容 但是 我真的很希望能够控制响应 并在 plupload 中处理它 但我似乎无法得到任何响应 我尝试过覆盖 fileU
  • ambari hadoop 安装期间权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic、密码)

    我正在尝试使用 ambari 部署 hadoop 集群 但是当我选择具有 FQDN 的主机名并继续配置时 我收到 ssh 的权限被拒绝错误 脚步 1 使用 ssh keygen 作为 root 生成 rsa 密钥 更改了 ssh 700 和
  • 我什么时候会使用 AppDomain?

    我对反射相当陌生 我想知道我会使用 第二个 AppDomain 做什么 在商业应用中会有什么实际应用 有很多用途 辅助 AppDomain 可以提供一定程度的隔离 类似于操作系统提供的进程隔离 我使用它的一个实际用途是动态加载 插件 DLL
  • 如何在android中将url加载到webview时显示进度?

    我正在将 url 加载到 webview 中 WebView webview WebView findViewById R id webview webview loadUrl url 加载网址需要一些时间 在此期间显示空白屏幕 我想在加载
  • 递归查询挑战 - 简单的父/子示例

    注意 在 postgresql 上的 RhodiumToad 的帮助下 我找到了一个解决方案 我将其作为答案发布 如果有人可以对此进行改进 请加入 我还没能适应之前的递归查询解决方案到以下有向无环图 其中包括多个 根 无祖先 节点 我正在尝
  • System.Diagnostics.Process.Start 针对不同域的进程

    我们有一个场景 我们需要用户能够启动 SQLServer 并使用与当前登录的域不同的域进行身份验证 因此 为了澄清其设置方式 用户到达办公室并登录公司域 为简单起见 我们将其称为 LOCALDOMAIN 他们希望连接到不同域上的远程数据库
  • TWTweetComposeViewController 中的错误?

    我正在使用 TWTweetComposeViewController 如果可用 从我的 iOS 应用程序内部发送推文 我用样板文本预先填充视图控制器 然后让用户自行修改和发送 它在大多数情况下都非常有效 蒸馏下来 它看起来像这样 与body
  • 测试|无法在resetFakeAsyncZone处读取未定义的属性“assertPresent”

    我的 karma v1 4 有问题 测试框架 我所有的单元测试现在都因错误而失败Cannot read property assertPresent of undefined at resetFakeAsyncZone 我已经搜索过解决方案
  • 让 eclipse 调试我的 android 项目

    我正在使用 Eclipse 编写 Android 应用程序 当我单击左侧树视图中的项目 然后单击 调试 时 IDE 会构建一个 APK 并按预期安装在模拟器 设备中 但是 如果我正在编辑文件并且忘记在尝试调试之前首先单击该项目 那么 IDE
  • 如何在网格视图的行命令中找到该控件?

    我怎么能够在 row 命令中找到控件网格视图 实际上 GridViewCommandEventArgs 中没有 Row 因此您需要从命令源命名容器中获取行 GridViewRow row GridViewRow Control e Comm
  • .NET 中的 Java 小程序相当于什么?

    NET 中的 Java 小程序相当于什么 是银光吗 Java applet 还在广泛使用吗 1997 年 当 Java 1 0 发布时 Java applet 是 新的热门事物 几年后 它们变得越来越不受欢迎 主要是因为在计算机上安装Jav
  • 如何实现像Gallery一样的Horizo​​ntalScrollView?

    I want to implement Horizontal ScrollView with some features of Gallery 在图库中 滚动条在一定距离处成对排列 即如果屏幕上显示三个图像 单击最后一个图像将排列在中心 我
  • 通过自动解锁从类返回锁定的资源

    我想要一个返回指向资源的指针的类成员函数 资源应自动锁定和解锁 我考虑创建一个不可复制的对象来处理锁定 您认为以下是一个好的解决方案吗 它是线程安全的吗 STL 中是否已有适用于此用例的工具 template
  • Scala String* 类型(在函数 args 中)

    我有以下方法 def m a String 我想知道此语法中星号 符号的用途是什么 我显然是 Scala 的新手 我用谷歌搜索 但可能搜索错误的东西 任何帮助表示赞赏 Cheers 它被称为 var args 变量参数 def concat
  • 我可以在批处理脚本中的一个“查找”命令中搜索多个字符串吗?

    我有一个 Windows 批处理脚本 它将在文件中查找字符串 find i WD6 Inputpath file txt if errorlevel 0 GOTO somestuff 目前 这就是我的代码的样子 我遇到了一个新字符串 我想在
  • 如何使用 C#6“使用静态”功能?

    我正在看其中的几个新功能在C 6 具体来说 使用静态 using static is a new kind of using clause that lets you import static members of types direc
  • 关于 NaN 运算的问题

    我的 SSE FPU 生成以下 NaN 当我执行任何基本的对偶运算 如 ADDSD SUBSD MULSD 或 DIVSD 并且两个操作数之一为 NaN 时 结果具有 NaN 操作数的符号 并且结果尾数的低 51 位将加载NaN 操作数尾数