Fortran 中 IEEE 算术与异常处理的深入解析
1. 处理器的浮点状态与浮点处理器模式
处理器的浮点状态由支持的异常标志和模式的值来表示。可以使用模块子例程 IEEE_GET_STATUS 来查询浮点状态,使用 IEEE_SET_STATUS 来设置特定的值和模式。表示浮点状态的对象属于私有类型 IEEE_STATUS_TYPE 。
浮点处理器有三个相关的特性和模式:
- 算术舍入特性 :当出现不精确异常时,有四种舍入模式可供选择,分别是四舍五入到最接近的值、向上舍入、向下舍入和向零舍入。
- 下溢特性 :下溢模式分为渐进式和突然式。渐进式下溢中,操作结果可能是一个非规范化数来近似结果,或者当结果的绝对值小于最小非规范化数时为零;突然式下溢中,当下溢异常发生时,操作结果总是零。
- 异常处理 :当异常发生时,处理器有两种处理模式,要么停止计算,要么返回结果、设置异常标志并继续执行。“停止计算”的具体含义因处理器而异,IEEE 和 Fortran 标准并未明确规定。
2. 三个内在模块的介绍
为了支持 IEEE 算术和异常处理,Fortran 定义了三个内在模块,这些模块是可选的,它们的存在与否以及定义的具体实体决定了特定处理器对 IEEE 的支持程度。
2.1 IEEE_FEATURES 模块
该模块定义了一个具有私有组件的派生类型 IEEE_FEATURES_
超级会员免费看
订阅专栏 解锁全文
1367

被折叠的 条评论
为什么被折叠?



