インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
浮動小数点演算の後に浮動小数点結果を丸めます。
Linux* および macOS*: | -fp-port -no-fp-port |
Windows*: | /Qfp-port /Qfp-port- |
なし
-no-fp-port |
デフォルトの丸め動作は、コンパイラーのコード生成判断とオペレーティング・システムの精度引数に依存します。 |
このオプションは、浮動小数点演算の後に浮動小数点結果を丸めます。
このオプションは、32 ビット・コンパイラーで -mia32 オプション (Linux* および macOS*) または /arch:IA32 オプション (Windows*) と一緒に使用します。これらのオプションを指定すると、コンパイラーは、x87 命令セットを使用して浮動小数点演算を実装します。x87 命令セットは、プログラムで指定されている精度よりも高い内部精度を利用する可能性があります。
デフォルトでは、浮動小数点演算の結果はこの内部精度で維持され、不特定のポイントでプログラムの精度に丸められます。これにより、浮動小数点結果の決定性が多少損なわれますが、パフォーマンスが向上します。[Q]fp-port オプションは、代入と型変換で浮動小数点結果をユーザーが指定した精度に丸めます。速度に多少影響を与えます。
新しいアーキテクチャー向けにコンパイルする場合、コンパイラーは、インテル® SSE や SSE2 のような別の命令セットを利用して浮動小数点演算を実装します。インテル® ストリーミング SIMD 拡張命令は、各命令で直接単精度または倍精度に丸めます。このような場合、[Q]fp-port オプションは効果がありません。
Visual Studio*: [Optimization (最適化)] > [Floating-point Precision Improvements (浮動小数点精度の改善)]
Eclipse*: [Floating Point (浮動小数点)] > [Round Floating-Point Results (浮動小数点結果の丸め)]
Xcode*: [Floating Point (浮動小数点)] > [Round Floating-Point Results (浮動小数点結果の丸め)]
なし