対数や平方根のテーブルを縮小する方法

なひたうさんのBlogに対数計算回路の紹介。

このアルゴリズムが常識かどうかは調べていないのでわかりませんが、こんな簡単な回路で実用上十分な計算ができるのを確認できました。

対数や平方根は最初のビット位置を使ってテーブルサイズや収束時間を稼ぐ方法がよく使われます。二昔ほど前のAMD浮動小数点計算チップも、平方根の演算の初期値を求めるのにこの方法を使っていました。
とくに浮動小数点数の場合は指数部が初めから分離されているのでスタートが楽です。また、多くの固定小数点DSPでは「最初の1の位置」を、「MSBから連続する符号の数」といった命令で簡単に取り出せます。