Oracle® Solaris Studio 12.4: Fortran ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

3.4.28 –fns[={yes|no}]

非標準の浮動小数点モードを選択します。

デフォルトは標準の浮動小数点モード (-fns=no) です。『Fortran プログラミングガイド』の「浮動小数点演算」の章を参照してください。

-fast などの -fns フラグが含まれるマクロフラグのあとに =yes または =no オプションを使用して -fns フラグを切り替えることができます。値を指定しない場合、 -fns は、-fns=yes と同じです。

このオプションフラグは、プログラムの実行開始時に、非標準の浮動小数点モードを有効にします。SPARC プラットフォームで非標準の浮動小数点モードを指定すると、「段階的アンダーフロー」が無効になります。つまり、小さな結果は、非正規数にはならず、ゼロに切り捨てられます。さらに、このモードでは、非正規のオペランドが報告なしにゼロに置き換えられます。このような SPARC システムでは、ハードウェアの段階的アンダーフローや非正規数がサポートされておらず、このオプションを使用するとプログラムのパフォーマンスを著しく改善することができます。

x が完全なアンダーフローの原因にならない場合、|x| が次の範囲にある数であるときにのみ、x非正規数になります。

表 3-8  非正規数 REAL と DOUBLE
データ型
範囲
REAL
0.0 < |x| < 1.17549435e–38
DOUBLE PRECISION
0.0 < |x| < 2.22507385072014e–308

非正規数に関する詳細は、『数値計算ガイド』を参照してください。また、このオプションおよび関連するオプションについては『Fortran プログラミングガイド』の「浮動小数点演算」の章を参照してください。(演算によっては、「非正規数」を表すのに「指数が最小非正規化数」という用語を使用している場合があります。)

デフォルトでは、浮動小数点は標準の設定に初期化されます。

  • IEEE 754 浮動小数点演算は、例外時に異常終了しません

  • アンダーフローは段階的です。

x86 プラットフォームの場合、このオプションは Pentium III および Pentium 4 プロセッサ (sse または sse2 命令セット) でのみ有効です。

x86 では、-fns は SSE flush-to-zero モードを選択します。利用可能な場合には、denormals-are-zero モードが選択されます。このフラグは、非正規数の結果をゼロに切り捨てます。また、利用可能な場合には、非正規数オペランドもゼロとして扱われます。このフラグは、SSE または SSE2 命令セットを利用しない従来の x87 浮動小数点演算には影響しません。

このオプションを有効にするには、主プログラム全体にこのオプションを付けてコンパイルする必要があります。