2011年9月アーカイブ

ARM9でlog計算

| コメント(0) | トラックバック(0)
ARM向けに整数演算のみで対数の計算をします。

ADCでの入力に使うことを前提にしているので入力は12bitです。
入力の最大値が1未満になるようにするため、
2^12を底とする対数を求めます。
そうすると、結果は[0,1)になるので、小数部だけの固定小数点として扱えます。

言い換えると、
log(x) / log(2^12) * 2^32
または、
log(x) / log(2^12) * 2^16
を計算します。

とりあえず、素数とその対数をテーブルにして計算してみました。
素因数分解して、それに対応する対数の総和を求めます。
テーブルの持ち方を工夫すると、1素数あたり2byteで済みます。

通常は、範囲をなるべく狭くした上で、
ニュートン法で適当な精度まで上げるようです。

このアーカイブについて

このページには、2011年9月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2011年8月です。

次のアーカイブは2011年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。