インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス

fpe

メインプログラムのランタイム時の浮動小数点例外処理の制御を許可します。

構文

Linux* および macOS*:

-fpen

Windows*:

/fpe:n

引数

n

浮動小数点例外処理レベルを指定します。設定可能な値は以下のとおりです。

0

この値でメインプログラムをコンパイルすると、アプリケーション全体で無効な浮動小数点例外、ゼロ除算例外、オーバーフロー例外が有効になります。そのような例外が発生した場合、実行はアボートします。このオプションは、正規化されていない浮動小数点結果を 0 に設定します。-no-ftz または -fp-model precise (Linux* および macOS*)、/Qftz- または /fp:precise (Windows*) を明示的に指定してこれを上書きしない限り、アンダーフロー結果も 0 に設定されます。

インテル® SSE 命令および x87 命令からのアンダーフロー結果は、ゼロに設定されます。対照的に、[Q]ftz オプションは SSE のアンダーフロー結果のみをゼロに設定します。

-fpe0 (Linux* および macOS*) または /fpe:0 (Windows*) を指定してコンパイルされたプログラムユニットに対して、-fp-speculation=strict (Linux* および macOS*) または /Qfp-speculation:strict (Windows*) を設定します。浮動小数点演算のスペキュレーティブ実行が、スペキュレーションなしの状態では発生しない浮動小数点例外を発生する場合に、特定の最適化を無効にします。例えば、条件文を含む一部のループのベクトル化が妨げられる可能性があります。

極端な入力引数で libm 呼び出しでは発生しない浮動小数点例外が生じる可能性がある SVML (Short Vector Math Library) への呼び出しを生成する特定の最適化を無効にします。例えば、超越数学関数への呼び出しを含む一部のループのベクトル化が妨げられる可能性があります。

エラーの発生場所についての詳細な情報を得るには、traceback オプションを使用します。

1

すべての浮動小数点例外が無効になります。

インテル® SSE 命令および x87 命令からのアンダーフロー結果は、ゼロに設定されます。

3

すべての浮動小数点例外が無効になります。[Q]ftzO3O2 など、FTZ (Flush-to-Zero) を有効にするコンパイラー・オプションを明示的に指定しない限り、浮動小数点アンダーフローは漸次アンダーフロー (gradual underflow) です。この設定は、完全な IEEE サポートを提供します。

デフォルト

-fpe3 または /fpe:3

すべての浮動小数点例外が無効になります。FTZ (Flush-to-Zero) を有効にするコンパイラー・オプションを明示的に指定しない限り、浮動小数点アンダーフローは漸次アンダーフロー (gradual underflow) です。

説明

このオプションは、ランタイム時の浮動小数点例外処理の制御を許可します。これには、例外浮動小数点値が許容されるかどうかや、ランタイム時に例外がどの程度正確に報告されるかなどが含まれます。

fpe オプションは、次の条件における処理方法に影響を与えます。

有効にされた例外が発生すると、実行はアボートし、ユーザーにその原因を報告するメッセージが表示されます。コンパイル時に、traceback コンパイラー・オプションが指定された場合、アボート地点についての詳細もレポートされます。

このオプションは、アンダーフロー例外、入力デノーマル例外、または不正確例外を有効にしません。

IDE オプション

Visual Studio*: [Floating Point (浮動小数点)] > [Floating-Point Exception Handling (浮動小数点例外処理)]

Eclipse*: なし

Xcode*: [Floating Point (浮動小数点)] > [Floating-Point Exception Handling (浮動小数点例外処理)]

代替オプション

なし

関連情報