核心概念
レベルインデックス算術は浮動小数点の過剰/アンダーフローの問題を解決するために開発された。本論文では、レベルインデックス算術を探索するためのカスタム精度シミュレータをMATLABで提示する。
要約
本論文では、レベルインデックス(LI)算術のMATLABシミュレータを紹介している。LI算術は1980年代に登場し、浮動小数点の過剰/アンダーフローの問題を解決することが主な目的である。
LI算術では、正の数xをレベルlと指数fを用いて表現する。レベルは整数値で、指数は0以上1未満の値である。LI算術では、数値の範囲が広がるほど数値間の間隔が大きくなる特徴がある。
本論文では、LI算術の表現方式と基本演算アルゴリズムについて説明している。また、5ビットのLI表現と浮動小数点表現を比較し、LI表現の特徴を示している。さらに、16ビットのLI表現(sli-2.12)と16ビットの浮動小数点表現(binary16、bfloat16)の精度を比較実験している。その結果、sli-2.12は過剰/アンダーフローに強く、bfloat16と同等以上の精度を持つことが示された。
最後に、LIシミュレータのMATLAB実装について説明している。このツールボックスは、LI算術を使ったアルゴリズムの研究開発に役立つと期待される。
統計
LI表現では、0を表現できず、1を2通りの方法で表現できる。
LI表現では、小さな値ほど大きな数値で表現される。
1ビットレベルのLI表現は、5ビット浮動小数点表現よりも表現範囲が狭い。
2ビットレベルのLI表現は、binary64表現よりも広い表現範囲を持つ。
引用
"LI systems are free from "wobbling precision", a feature of floating point whereby a real number x rounded to a floating-point system with precision p is fl(x) = x(1 + δ) and the error δ can be anywhere between −2^-p and 2^-p."
"Olver also mentions that LI is more precise than floating-point for x < 2^11 in 32 bits and for x < 2^44 in 64 bits, but less precise beyond x > 2^18 and x > 2^70 for 32- and 64-bit representations, respectively."