的情况下FLT_HAS_SUBNORM == 0
(或任何XXX_HAS_SUBNORM == 0
一般来说)是否执行fpclassify
具有手动构造的次正规宏(通过使用类型双关构造union
, using memcpy
、从文件中读取等)导致未定义的行为(UB)或导致明确定义的行为(WDB)返回FP_SUBNORMAL
(如预期)?
Notes:
- C 标准对于
FLT_HAS_SUBNORM is 0
案件。所有这一切都是关于FLT_HAS_SUBNORM is 0
is:
如果没有浮点运算从非次正规输入产生次正规结果,即使类型格式包括次正规数的表示,也将表征为不存在。
可以解释为:
如果 FLT_HAS_SUBNORM 为 0,则 any_normal any_normal 永远不会产生次正常。
- C 标准似乎省略了以下情况的行为的显式定义(以问题形式表述):
万一如果FLT_HAS_SUBNORM is 0
:是否使用手动构造的次正规数表示的输入执行任何 FP 运算(通过使用类型双关来构造)union
, using memcpy
、从文件中读取等)导致未定义的行为(UB)?
- 如果省略行为的显式定义,则根据 C 标准:
...未定义的行为在本文档中以其他方式表示...通过省略任何明确的行为定义...
UPD20210825:委员会的答复:
它是 FP_ZERO。
结果:
- 的情况下
FLT_HAS_SUBNORM is 0
该实现是否应将 DAZ(非正规数为零)属性设置为 1?是的。
- DAZ=1是否适用于所有涉及FP数(对象)的操作?进行中...
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)