Oracle® Solaris Studio 12.4: 数値計算ガイド

印刷ビューの終了

更新: 2015 年 1 月
 
 

4.2.1 表 4-1 の注

  1. 非順序付け比較: 任意の浮動小数値のペアは、形式が異なっていても比較できます。次の 4 つの相互に排他的な関係 (より小さい、より大きい、等しい、または非順序付け) があります。非順序付けとは、オペランドのうち少なくとも 1 つが NaN (非数) であることを意味します。

    それぞれの NaN は、その NaN 自体も含めてすべての値に対して「非順序付け」で比較されます。次の表は、関係が非順序付けのときに、無効な演算例外を発生する述語を示しています。

    算術述語
    C、C++ の述語
    Fortran の述語
    無効な式 (非順序付けの場合)
    =
    ==
    .EQ.
    いいえ
    !=
    .NE.
    いいえ
    >
    >
    .GT.
    はい
    >=
    .GE.
    はい
    <
    <
    .LT.
    はい
    <=
    .LE.
    はい
  2. 無効な変換: NaN、または無限大から整数に変換しようとすること、あるいは浮動小数点形式からの変換時に発生した整数値オーバーフロー。

  3. IEEE の単精度、倍精度、および拡張倍精度の形式で表現可能な最小の正規数は、それぞれ 2-126、2-1022、および 2-16382 です。IEEE の浮動小数点形式については、Chapter 2, IEEE 演算を参照してください。

  4. 次の表は、オーバーフローに対するトラップが無効にされているときのデフォルトの結果を一覧表示しています。これらの結果は、丸めモードおよび中間結果の符号によって異なります。

    丸めモード
    一番近い値
    +∞
    -∞
    ゼロ
    +∞
    -max
    切り捨て
    +max
    -∞
    切り上げ
    +∞
    -max

x86 浮動小数点環境には、IEEE 規格にはない例外である非正規オペランド例外があります。この例外は、浮動小数点演算が非正規数に対して実行された場合に発生します。

例外は、 次の順序で優先付けされます。無効 (もっとも高い優先度)、オーバーフロー、除算、アンダーフロー、不正確 (もっとも低い優先度)。x86 ベースのシステムでは、非正規オペランド例外はもっとも低い優先度になります。

単一の演算で同時に発生する可能性のある標準例外の組み合わせは、オーバーフローと不正確、およびアンダーフローと不正確のみです。x86 ベースのシステムでは、非正規オペランド例外は 5 つの標準例外のいずれかとともに発生することがあります。 オーバーフロー、アンダーフロー、および不正確のトラップが有効になっている場合は、オーバーフローとアンダーフローのトラップが不正確のトラップよりも優先されます。これらはすべて、x86 ベースのシステムで非正規オペランドのトラップよりも優先されます。