rontolisp:bfloat16-bits
(rontolisp:bfloat16-bits real)
実数の bfloat16 ビットパターンを 0〜65535 の整数として返します。bfloat16 は IEEE 754 単精度浮動小数点数の上位 16 ビットです。符号 1 ビット、f32 と同じ指数部 8 ビット、そして仮数部 7 ビットからなります。したがって f32 と同じ範囲をカバーし、精度を幅と引き換えにします。公開されている機械学習チェックポイントがこの形式で保存されているのはそのためです。
丸めは 最近接偶数丸め (round to nearest, ties to even) です。下位 16 ビットを単に切り捨てる実装はほとんどの入力で同じ値を返しますが、総和が下方にバイアスします。以下の 2 つのちょうど中間の値は互いに逆方向に丸められます。
rontolisp:bits-bfloat16 がパターンを値に戻します。拡張は厳密かつ全域的で、65536 パターンすべてが浮動小数点数になります (無限大と NaN を含む)。したがってこの対はパターン上の対合であり、値を経由した往復は bfloat16 に丸められた値になります。