Sun Studio 12: Fortran ユーザーズガイド

3.4.33 -fns[ ={yes| no}]

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

デフォルトは標準の浮動小数点モード (-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 オプションを有効にするには、主プログラム全体にこのオプションを付けてコンパイルします。