Oracle® Solaris Studio 12.4: 数値計算ガイド

印刷ビューの終了

更新: 2015 年 1 月
 
 

5.5.5 高い暗黙的精度

一部の状況では、式は、ソースコードに明示されているより高い精度で評価される場合があります。これは、単精度または倍精度変数を含む式の評価に x87 拡張精度レジスタが使用される場合に発生します。また、融合型積和演算が乗算と加算のペアに置き換えられるときにも起こります。

  • 乗算と加算のペアは、融合型積和演算として最適化しないでください。–fast に続けて –fma=none を使用してください。

  • –xarch=386 を使用する必要があり、long double 型を明示的に使用していない場合は、すべての変数が float である場合には –fprecision=single を、すべての変数が double である場合には –fprecision=double を使用してコンパイルすることによって、拡張精度式評価の影響を軽減することができます。ただし、Fortran complex*8 変数が –xarch=386 で使用されている場合は、確実にすべての式評価を単精度で行う方法はありません。–m32 より –m64 を使用することをお勧めします。関数の値が、その関数と同じ精度のレジスタで渡されます。