デフォルトは標準の浮動小数点モード (-fns=no) です。『Fortran プログラミングガイド』の「浮動小数点演算」の章を参照してください。
-fast などの -fns フラグが含まれるマクロフラグのあとに =yes または =no オプションを使用して、-fns フラグを切り替えることができます。値を指定しない場合 -fns は、-fns=yes と同じです。
このオプションフラグは、プログラムの実行開始時に、非標準の浮動小数点モードを有効にします。SPARC プラットフォームで非標準の浮動小数点モードを指定すると、「段階的アンダーフロー」が無効になります。 つまり、小さな結果は、非正規数にはならず、ゼロに切り捨てられます。また、非正規オペランドがゼロに置き換えられます。段階的アンダーフローと非正規数をハードウェアでサポートしていない SPARC システムで、このオプションを使用すると、プログラムによってはパフォーマンスが飛躍的に上がることがあります。
x が完全なアンダーフローの原因にならないとき、非正規数 x とは次の範囲にある数です。
表 3–8 非正規数 REAL と DOUBLE
データ型 |
範囲 |
---|---|
REAL |
0.0 < |x| < 1.17549435e-38 |
DOUBLE PRECISION |
0.0 < |x| < 2.22507385072014e-308 |
非正規数に関する詳細は、『数値計算ガイド』を参照してください。また、このオプションおよび関連するオプションについては『Fortran プログラミングガイド』の「浮動小数点演算」の章を参照してください。演算によっては、「非正規数」を表すのに「指数が最小の非正規化数」という用語を使用している場合があります。
デフォルトでは、浮動小数点は標準の設定に初期化されます。
x86 プラットフォームの場合、このオプションは Pentium III および Pentium 4 プロセッサ (sse または sse2 命令セット) でのみ有効です。
x86 では、-fns は SSE flush-to-zero モードを選択します。利用可能な場合には、denormals-are-zero モードが選択されます。このフラグは、非正規数の結果をゼロに切り捨てます。また、利用可能な場合には、非正規数オペランドもゼロとして扱われます。このフラグは、SSE または SSE2 命令セットを利用しない従来の x87 浮動小数点演算には影響しません。
-fns オプションを有効にするには、主プログラム全体にこのオプションを付けてコンパイルします。