ナビゲーション:前へ 上へ 次へ
2.12 半精度浮動小数点
REAL
およびCOMPLEX
型の値と変数で半精度(16ビット)浮動小数点がサポートされています。
この浮動小数点はIEEE算術標準(ISO/IEC/IEEE 60559:2011)に準拠しています。
組み込み関数SELECTED_REAL_KIND(3)
および組み込みモジュール関数IEEE_SELECTED_REAL_KIND(3)
は、半精度の種別番号を返します。
-kind=byteモードではこの値は2となります。 -kind=sequentialモードでは16となります(この値は、種類番号の上位互換性を維持するために選択されました)。
最大の有限半精度値は65504.0
、最小の正規半精度値は0.00006103515625
、最小の非正規値は0.000000059604644775390625
です。
スカラー半精度演算は単精度で評価され、変数に割り当てられる時に、または非組込み、もしくは非数学手続き(例えばSQRT
は数学関数ですが、NEAREST
はそうではありません)に実引数として渡されたときのみ半精度に丸められます。
これは-round_hrealオプションで制御できます。使用すると、コンパイル時と実行時の両方で、すべての半精度演算が半精度に丸められます。
これらの変換が行われるため、半精度は単精度よりも遅くなります。半精度の唯一の利点はメモリとファイルストレージの容量を半分にすることです。