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

印刷ビューの終了

更新: 2015 年 1 月
 
 

2.1.1 IEEE 演算について

IEEE 754 は、次のものを指定しています。

  • 単精度倍精度という 2 つの基本的な浮動小数点形式。

    IEEE 単精度形式は仮数の精度が 24 ビットであり、全体で 32 ビットを占有します。 IEEE 倍精度形式は仮数の精度が 53 ビットであり、全体で 64 ビットを占有します。

  • 拡張単精度拡張倍精度という拡張浮動小数点形式の 2 つのクラス。

    この規格では、これらの形式の正確な精度やサイズは規定されておらず、最小の精度とサイズが指定されています。たとえば、IEEE 拡張倍精度形式は仮数の精度が少なくとも 64 ビットであり、全体で少なくとも 79 ビットを占有する必要があります。

  • 浮動小数点演算に関する正確性の要件: 加算、減算、乗算、除算、平方根、剰余、浮動小数点形式の数値の整数値への丸め、異なる浮動小数点形式間の変換、浮動小数点と整数形式の間の変換、および比較。

    剰余演算と比較演算は正確である必要があります。その他の各演算は、その宛先に正確な結果を提供する必要があります。ただし、このような結果が存在しない場合や、その結果が宛先の形式に収まらない場合を除きます。後者の場合、その演算は、規定された丸めモード (下で説明します) の規則に従って正確な結果を最小限に変更し、そのように変更された結果を演算の宛先に提供する必要があります。

  • 10 進数文字列と、両方の基本的な浮動小数点形式の 2 進浮動小数点数の間の変換に関する正確性、単調性、および同一性の要件。

    指定された範囲内に収まるオペランドの場合、これらの変換は正確な結果を生成するか (可能な場合)、または規定された丸めモードの規則に従ってこのような正確な結果を最小限に変更する必要があります。指定された範囲内に収まらないオペランドの場合、これらの変換は、丸めモードによって異なる指定された許容範囲を超えない程度に正確な結果と異なる結果を生成する必要があります。

  • 5 つの種類の IEEE 浮動小数点例外と、これらの種類の例外の発生をユーザーに示すための条件。

    5 つの種類の浮動小数点例外は、無効な演算、0 による除算、オーバーフロー、アンダーフロー、および不正確です。

  • 4 つの丸め方向: もっとも近い表現可能な値に向けて (もっとも近い表現可能な値が 2 つ存在する場合は常に「偶数」の値が優先されます)、負の無限大に向けて (下へ)、正の無限大に向けて (上へ)、および 0 に向けて (切り捨て)。

  • 丸め精度。たとえば、システムが結果を拡張倍精度形式で提供する場合は、ユーザーがこのような結果を単精度または倍精度形式のどちらかの精度に丸めるよう指定できるようにするべきです。

IEEE 規格ではまた、例外のユーザー処理のサポートも推奨されています。

IEEE 規格に必要な機能によって、区間演算、異常の遡及診断、expcos などの標準的な基本演算の効率的な実装、多倍精度演算、数値計算に役立つその他の多くのツールをサポートすることが可能になります。

IEEE 754 浮動小数点演算を使用すると、ユーザーは計算を、その他のどの種類の浮動小数点演算よりも詳細に制御できます。IEEE 規格は、実装の準拠に厳しい要件を課すことによってだけでなく、このような実装によるその規格自体の改良や拡張も可能にすることによって、数値的に複雑な、移植性のあるプログラムを記述するタスクを簡素化します。