ulp

ulpという概念をまだ「体で」は理解できてない.

連続する2つの機械数の差はulp(unit in the last place,最後の桁の単位)と呼ばれる.ulpの大きさは機械数セットのどこにあるかによって異なる.1から2の間ならulpは$MachineEpsilonに等しい.2からの間なら2 $MachineEpsilonに等しい.どんな関数もulpの半分以上の誤差を含む結果を返さないことが望ましい.なぜなら,真の結果から最も近くの機械数までの距離は常にulpの半分以下で,最悪の場合でも2つの機械数のちょうど中心にあるからである.

「セット」「初歩的な超越関数」といった腐れ翻訳が気になるがまぁ役に立つ文書だ.
1 <= x < 2 だと x = M * 2^0, ここで M = 1.pqrs...(2) と書けるので(なお2進表現は 0 01111111 pqrs... となる)ulpはまさにmachine epsilonと一致する.IEEE 754 singleだとmachine epsilonは2^(-23)か.
しかしこんな例ではなくて本当は個々のアルゴリズムそれぞれにおいてぱっと誤差が何ulpか分かるようでないといけないんだろうけど,まぁそれは専門の人に委ねるとしましょう.
あまり関係ないが以前書いたJavaScriptによるIEEE 754 single表現の表示:

なお入力欄でEnterを叩くとsubmitされてしまって表示が消える(笑