四倍精度浮動小数点数
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/19 07:12 UTC 版)
四倍精度浮動小数点形式(よんばいせいどふどうしょうすうてん、英語: quadruple-precision floating-point format)は、浮動小数点数の形式の1つで、よく使われている通常の倍精度形式と比して、仮数部の長さが約2倍である。
Nicholas J. Higham『Accuracy and Stability of Numerical Algorithms』(2nd.e)が、カハンの言として引用している文によれば、
For now the 10-byte Extended format is a tolerable compromise between the value of extra-precise arithmetic and the price of implementing it to run fast; very soon two more bytes of precision will become tolerable, and ultimately a 16-byte format ... That kind of gradual evolution towards wider precision was already in view when IEEE Standard 754 for Floating-Point Arithmetic was framed.[1]
(訳)これまでのところは、10バイトの拡張倍精度は、高精度演算の価値と高速に動作させるための実装コストとの間の妥協点としては許容できるものです。そうしてすぐにさらに2バイト分長い精度が妥当になるでしょう。そうして究極的には16バイトフォーマットもが…。この種の、より広い精度への段階的な進化はIEEE 754の規格が形成された時には既に想定されていました。
とのことである。(編注: 英語版Wikipediaが孫引きしている。英語版Wikipediaの引用元が示している引用元は「W. Kahan. Computer benchmarks versus accuracy. Draft manuscript, June 1994.」となっている)
IEEE 754-2008では、128ビットの二進フォーマットが公式にbinary128として定義された。次に示す。
IEEE 754 四倍精度二進浮動小数点フォーマット: binary128
IEEE 754-2008は四倍精度二進浮動小数点フォーマットbinary128を以下のように定めている。
これは十進換算で33桁〜36桁に相当する(十進小数→binary128→十進小数のラウンドトリップが可能な最大桁数が33桁、binary128→十進小数→binary128のラウンドトリップが可能な最大桁数が36桁[2])。
このフォーマットは、正規化数の場合は最上位の1が暗黙のうちに存在するものとして省略される(いわゆるケチ表現)。これにより113ビット(十進換算約34桁:
指数部
他の精度の場合と同様に、指数はゲタ履き表現(IEEE 754ではexponent bias)で、オフセットは16383である。特別な場合(後述)についても基本的に他と同様である。
- Emin = 000116−3FFF16 = −16382
- Emax = 7FFE16−3FFF16 = 16383
- バイアス = 3FFF16 = 16383
ゲタ履き表現なので、実際の指数を得るには、ビットパターンによる表現からオフセットの16383を引く。
指数部が000016と7FFF16の場合は特別な場合で、それぞれ、ゼロ・非正規数、無限大・NaNの表現である。
指数 | 仮数ゼロ | 仮数非ゼロ | 式 |
---|---|---|---|
000016 | 0, −0 | 非正規化数 | ![]() |
- 四倍精度浮動小数点数のページへのリンク