IA-32 およびインテル(R) EM64T 対応システムにおける浮動小数点計算用にコンパイラーの最適化を制御します。以下のオプションは Itanium(R) ベース・システムでは利用できません。
Windows* |
Linux* |
効果 |
---|---|---|
/Qprec-div |
-prec-div |
精度が高い単精度浮動小数点除算を使用します。浮動小数点除算の範囲および精度を維持することが重要な場合は、このオプションを使用して除算の最適化を無効にしてください。このオプションを使用すると、精度は上がりますが、若干パフォーマンスが落ちます。 除算の最適化を無効にするには、-fp-model precise (Linux) または /fp:precise (Windows) を使用します。 除算の最適化を有効にするには、-no-prec-div (Linux) または /Qprec-div- (Windows) を使用します。また、-no-prec-div は、逆数によって除算から乗算へ変換する最適化を有効にします。-fast を指定すると、-no-prec-div が指定されます。 詳細は、次のトピックを参照してください。
|
/Qpc |
-pc |
PROGRAM 関数がコンパイルされるときの浮動小数点の精度の制御方式を変更します。このオプションを使用するプログラムはエントリーポイントとして PROGRAM を使用しなければならず、PROGRAM を含むファイルはこのオプションを使用してコンパイルしなければなりません。 デフォルトの精度制御方式または丸めモードを変更すると (例えば、-pc32 フラグ (Linux) や /Qpc32 フラグ (Windows) の使用やユーザーの介入によって)、いくつかの算術関数で返された結果に影響する場合があります。一部のフラグは -fp-model (Linux) や /fp (Windows) などと互換性がありません。これらの設定では、C99 の FLT_EVAL_METHOD=1 や FLT_EVAL_METHOD=2 を基に式を評価します。
詳細は、次のトピックを参照してください。
|
/Qrcd |
-rcd |
浮動小数点から整数への変換における丸めモードの変更を無効にします。 デフォルトでは、浮動小数点の丸めモードは「最近値への丸め」となっています。つまり、値は浮動小数点の計算時に丸められます。しかし、C/C++ 言語では、整数への変換時に浮動小数点値を切り捨てる必要があります。これを行うために、コンパイラーは各浮動小数点の変換前に一度丸めモードを切り捨てに変更し、後で元に戻さなければなりません。 このオプションは、浮動小数点数から整数への変換を含むすべての浮動小数点計算において、丸めモードから切り捨てモードへの変更を無効にします。つまり、浮動小数点数から整数への変換を含む、すべての浮動小数点の計算においてデフォルトの最近値への丸めが行われます。このオプションを指定すると、パフォーマンスは向上しますが、浮動小数点から整数への変換処理は C/C++ 言語のセマンティクスに準拠しなくなります。 詳細は、次のトピックを参照してください。
|
/Qfp-port |
-fp-port |
浮動小数点データ演算の結果に丸め制御を設定できます。このオプションは処理速度に影響を与えることがありますが、確実に代入時にユーザー定義の精度への丸めが行われます。
-fp-model precise (Linux) または /fp:precise (Windows) オプションはこのオプションが有効であることを意味しますが、-fp-model fast (Linux) または /fp:fast (Windows) はこのオプションを無効にします。ただし、同じコマンドラインで両方のオプションが指定された場合、-fp-model fast (Linux) または /fp:fast (Windows) はこのオプションを無視しません。 詳細は、次のトピックを参照してください。
|
/Qprec-sqrt |
-prec-sqrt |
平方根の精度を上げますが、このオプションを使用すると多少速度に影響する場合があります。 コンパイラーは、高速ですが多少精度が低い単精度浮動小数点平方根を使用します。平方根計算の精度を維持することが重要な場合は、このオプションを使用して平方根の最適化を無効にしてください。 平方根の最適化を無効にするには、-fp-model precise (Linux) または /fp:precise (Windows) を使用します。平方根の最適化を有効にするには、-no-prec-sqrt (Linux) または /Qprec-sqrt- (Windows) を使用します。 詳細は、次のトピックを参照してください。
|