インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
超越関数への呼び出しを、より高速で精度が少し低いものに置換します。
Linux* および macOS*: | -fast-transcendentals -no-fast-transcendentals |
Windows*: | /Qfast-transcendentals /Qfast-transcendentals- |
なし
-fp-model (Linux* および macOS*) または /fp (Windows*) の設定により異なります。 |
-[no-]fast-transcendentals または /Qfast-transcendentals[-] オプションを指定しない場合:
|
このオプションは、超越関数への呼び出しを、より高速で精度が少し低いものに置換します。
超越関数における特定の最適化を行うようにコンパイラーに指示します。例えば、ループの正弦への各呼び出しを、精度が少し低いベクトル化した正弦ライブラリー・ルーチンの呼び出しに置換します。これらの最適化は、-fp-model precise (Linux* および macOS*) または /fp:precise (Windows*) などの精度に影響しないオプションでコンパイルした場合には存在しない、数値の相違を引き起こすことがあります。
例えば、O0 オプションと O2 オプションを指定する場合では結果が異なる可能性があります。また、プログラムの異なる位置で同じ入力を使用して同じ関数を呼び出す場合も結果が異なる可能性があります。このような数値の相違が問題になる場合は、代替手段として -fimf-use-svml (Linux* および macOS*) または /Qimf-use-svml (Windows*) オプションの使用を検討してください。-fp-model precise や /fp:precise のような精度に影響しないオプションと一緒に使用すると、-fimf-use-svml または /Qimf-use-svml は、数値の一貫性に影響することなく [Q]fast-transcendentals のパフォーマンスの利点の多くをもたらします。詳細は、-fimf-use-svml および /Qimf-use-svml オプションの説明を参照してください。
このオプションは、明示的な SVML (Short Vector Math Library) 組込み関数には影響しません。標準数学ライブラリー・ルーチンのスカラー呼び出しにのみ影響があります。
-fast-transcendentals オプションは -fp-model strict とともに使用することはできません。また、/Qfast-transcendentals オプションを /fp:strict オプションととともに使用することはできません。
次のいずれも指定されない場合、このオプションは、数学ライブラリー関数の結果における相対誤差の最大限許容値を定義します (max-error)。
-fimf-accuracy-bits (Linux* および macOS*) または /Qimf-accuracy-bits (Windows*)
-fimf-max-error (Linux* および macOS*) または /Qimf-max-error (Windows*)
-fimf-precision (Linux* および macOS*) または /Qimf-precision (Windows*)
このオプションは、インテル® プロセッサーにのみ適用される追加の最適化を有効にします。
なし
最適化に関する注意事項 |
---|
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |