doubleを2つ重ねて31桁の精度を実現する「double-double」演算
Double-double: 31 digits of precision without leaving the FPU

倍精度浮動小数点(double)の15桁では足りない場合、2つのdoubleを組み合わせて1つの数として扱う「double-double」演算が有効だ。約31桁の精度を、ヒープ割り当てや依存ライブラリなしで実現でき、性能は通常のdoubleの約9倍のコスト、任意精度ライブラリMPFRの約9分の1のコストで済む。本記事では、誤差のない変換(two-sum、two-product)を用いた加算・乗算の実装方法を解説し、マンデルブロ集合の深掘りズームでの応用例や、MPFRとの性能比較、限界について述べている。
「double-double値は、2つのdoubleの未評価の和を格納する。」
HNでの議論
11- tobias2014
AIはhttps://www.davidhbailey.com/dhbsoftware/ や類似のものを再発見したのでしょうか?それともアルゴリズムの改善があるのでしょうか?確立されたdouble-doubleの研究を参照しなければ、判断するのは難しいです。
- aappleby
豆知識:Google MapsはWebGLでこれと似たことをしており、32ビット浮動小数点のみを使って惑星サイズの地図上で正確な座標を維持しています。
- ncruces
私はdouble-double演算(および指数、対数、三角関数も)を実装したGoライブラリを持っています:https://github.com/ncruces/dbldbl
ほとんど役に立ちませんが、書くのはとても楽しかったです。