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

印刷ビューの終了

更新: 2015 年 1 月
 
 

用語集

A-E
突発的アンダーフロー

浮動小数点演算がアンダーフローすると、結果が非正規数の範囲内にある場合でも、常にゼロを返します。

正確さ

ある数値が別の数値にどれだけ近似しているかを表す尺度。たとえば、計算結果の正確さは、多くの場合、計算値がその誤差のために数学的に正確な結果からどの程度異なっているかを反映します。正確さは、たとえば「結果は小数点第 6 位まで正確である」のように有効桁数として、またはより一般的に、関連する数学的プロパティーの保持 (たとえば「結果の算術符号が正しい」) のように表すことができます。

バイアス付きの指数

格納された指数の範囲を負でなくするために選択された定数 (バイアス) と基数が 2 の指数の和。たとえば、2-100 の指数は、IEEE 単精度形式では (-100) + (127 の単精度バイアス) = 27 として格納されます。

binade

2 つの連続する 2 の累乗値の間隔。

連鎖

演算の結果を、2 番目の演算のオペランドとしてただちに使用すると同時に、デスティネーションレジスタに結果を書き込めるようにする一部のパイプラインアーキテクチャーのハードウェア機能。2 つの連鎖した演算の合計サイクル時間は、その命令の単独でのサイクル時間の合計より短くなります。たとえば TI 8847 は、(同じ精度の) 連続する faddfsub、および fmul の連鎖をサポートします。連鎖した faddd/fmuld は 12 サイクル必要ですが、連鎖していない連続の faddd/fmuld は 17 サイクル必要です。

共通例外

3 つの浮動小数点例外であるオーバーフロー、無効、およびゼロ除算はまとめて、ieee_flags(3m) および ieee_handler(3m) のための共通例外と呼ばれています。これらは共通してエラーとしてトラップされるために共通例外と呼ばれます。

コンテキストスイッチ

SunOS オペレーティングシステムなどのマルチタスクオペレーティングシステムでは、プロセスは定められた時間だけ実行されます。その時間の終わりに、CPU はタイマーからシグナルを受信し、現在実行中のプロセスを中断し、新しいプロセスの実行を準備します。CPU は古いプロセスのレジスタを保存し、続いて新しいプロセスのレジスタをロードします。古いプロセスの状態から新しい状態に切り替えることをコンテキストスイッチと呼びます。コンテキストスイッチにかかる時間はシステムオーバーヘッドです。所要時間は、レジスタの数、およびプロセスに関連付けられたレジスタを保存するための特殊な命令があるかどうかによって異なります。

デフォルト結果

例外に対してほかの処理が指定されていなかった場合に、その例外の原因となった浮動小数点演算の結果として配布された値。

非正規化数

非正規数の古い命名。

倍精度

精度を維持および向上させるため、2 ワードを使用して 1 つの数値を表すこと。SPARC® ワークステーションでは、倍精度は 64 ビット IEEE 倍精度です。

例外

算術例外は、不可分算術演算を試みた結果が、どこでも許容可能な結果にならなかったときに起こります。不可分と許容の意味は、時間と場所によって異なります。

指数

表現された数値を算出するため、基数をどれだけ累乗するかを示す整数べきを表した浮動小数点数の構成要素。

F-I
浮動小数点数体系

表現可能な数の間の間隔が固定された絶対定数でない実数の部分集合を表すための体系。このような体系は、基数、符号、仮数、および指数 (通常はバイアス) で特徴付けられます。数値は、バイアスなしの指数まで基数を累乗した数とその仮数の符号付きの積です。

段階的アンダーフロー

浮動小数点演算が非正規数の範囲にアンダーフローすると、0 の代わりに非正規数を返します。このアンダーフローを処理する方法では、小さい数に対する浮動小数点計算での正確さの低下を最小限に抑えます。

隠しビット

丸めが正しいことを確認するためにハードウェアで使用される追加ビットであり、ソフトウェアではアクセスできません。たとえば、IEEE 倍精度演算では、3 つの隠しビットを使用して 56 ビットの結果を計算します。この結果は、その後 53 ビットに丸められます。

IEEE 標準 754

1985 年に発行され、2008 年に改訂された、Institute of Electrical and Electronics Engineers が定めた 2 進浮動小数点演算の標準。

インラインテンプレート

Sun Studio コンパイラのインラインパス中に、定義済みの関数コールと置き換えられる、アセンブリ言語コードのフラグメント。(たとえば) C プログラムから三角関数やほかの初等関数のハードウェア実装にアクセスするために、インラインテンプレートファイル (libm.il) の数学ライブラリで使用されます。

L-P
NaN

非数を表します。浮動小数点形式でエンコードされた記号エンティティー。

正規数

IEEE 演算で、有界値のある小さな相対誤差を伴う、正常範囲の実数の部分集合を表す、ゼロでも最大値 (すべて 1) でもないバイアス付きの指数を持つ数。

パイプライン化

演算が複数の段階に減らされるハードウェア機能であり、その段階はそれぞれ (通常は) 1 サイクルかかる。パイプラインは、各サイクルで新しい演算が可能になるときに満たされます。パイプ内の命令間に依存関係がない場合、サイクルごとに新しい結果をもたらすことができます。連鎖は、依存している命令同士のパイプライン化を意味します。依存した命令が連鎖できない場合 (ハードウェアがこれらの特定の命令の連鎖をサポートしていない場合)、パイプラインは停止します。

精度

表現可能な数値の密度の定量的測度。たとえば、53 の有効ビットの精度を持つ 2 進浮動小数点形式では、(正規数の範囲内で) 2 つの隣接する 2 の累乗の間に 253 の表現可能な数値があります。精度は、ある数が別の数にどれだけ近似しているかを表す正確さと混同しないでください。

Q-R
シグナルを発生しない NaN

新しい例外を発生することなく、ほとんどの算術演算によって伝達される NaN (非数)。

基数

あらゆる数体系の基となる数。たとえば、2 は 2 進法の基数であり、10 は 10 進法の基数です。SPARC ワークステーションは基数 2 の演算を使用しており、IEEE 標準 754 は基数 2 の演算の標準規格です。

丸め

厳密でない結果は、表現可能な値にするため切り捨てまたは切り上げを行う必要があります。切り上げられると、結果は増大されて次の表現可能な値になります。切り下げられると、結果は縮小され、直前の表現可能な値になります。

丸め誤差

実数がマシンで表現可能な数に丸められたときに生じる誤差。ほとんどの浮動小数点計算では、丸め誤差が発生します。IEEE 標準 754 では、1 回の浮動小数点演算でその結果に丸め誤差が複数生じることは認められていません。

S-T
シグナルを発生する NaN

オペランドとして現れるときは常に、無効な処理例外を生成する NaN (非数)。

仮数

符号付きの基数の累乗で乗算されて数の値を特定する浮動小数点数の構成要素。正規化数では、仮数は、基数点の左側のゼロ以外の 1 つの桁と右側の小数部分から構成されます。

単精度

1 つのコンピュータワードを使用して 1 つの数を表すこと。

stderr

標準エラー (Standard Error) は、標準エラー出力への UNIX ファイルポインタです。このファイルは、プログラムが起動すると開かれます。

ゼロ格納

突発的アンダーフローと同じです。突発的アンダーフローを参照してください。

非正規数

IEEE 演算では、バイアス付きゼロの指数を含むゼロ以外の浮動小数点数。非正規数は、ゼロと最小の正規数の間にある数です。

2 の補数

1 から各桁を差し引き、次に最後の有効桁に 1 を加え、必要な桁上げを行うことで求められる、2 進数の基数の補数。たとえば、1101 の 2 の補数は 0011 です。

U-Z
ulp

最下位の単位 (unit in last place) を表します。2 進形式では、仮数の最小有効ビットであるビット 0 が最下位の単位です。

ulp(x)

処理中の形式で切り捨てられた x の ulp を表します。

アンダーフロー

浮動小数点算術演算の結果が非常に小さいため、通常の丸めだけではデスティネーションの浮動小数点形式で正規数として表現できない場合に起きる状況。

ワード

特定のコンピュータ内で単一のエンティティーとして格納、アドレス指定、転送、および演算が行われる順序付けられた文字セット。SPARC ワークステーションの場合、1 ワードは 32 ビットです。

ラップ数

IEEE 演算で、そのままではオーバーフローまたはアンダーフローするような値に対して、ラップされた値を正規数範囲に位置付けられるように、その指数に固定オフセットを加えて作成した数。現在、ラップされた結果は SPARC ワークステーションでは正しく生成されません。