河野真治 @ 琉球大学情報工学です。

In article <041119140356.M0100468@XP.doga.jp>, Masamichi Takatsu <taka2@doga.jp> writes
> 精度を出そうと、下駄を30ビットにしたこともありましたけど、掛け算ルーチンが
> すごい手間がかかって、最近のCPUだと下手をすると double で演算した方が速い
> ですね。アセンブラで頑張ればもうちょっと速くなるんでしょうけど、そこまで
> やるのも面倒なので、今はそういう時はもっぱら浮動小数点です。

アセンブラで頑張るのは実は難しくないんだけど。

何故か普通のプログラミング言語には桁上げ付き足し算とか、64bit=
32bit*32bit のかけ算とかないんですよね。不便なんだよ。あと、
単精度のかけ算を倍精度に変換されてしまうと誤差が管理できない
とかの問題もあったはず... 

多倍長のかけ算とかだとFFT使うとかあるらしいんだけど、あまり追求
したことはないです。

> 例えば、画像処理とかだと、0〜1 を 15ビットの下駄を履かせて 0〜32768にする
> とか。(実際には、0〜255を、128.502倍してますが。)
> これだと、掛け算が、32bitの普通の掛け算+右シフトだけでできるので楽です。

ほぅ。

---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科