Path: coconuts.jaist!wnoc-tyo-news!etlnews.etl.go.jp!etlinn.etl.go.jp!etl.go.jp!trc.rwcp!rwc-tyo!news.iij.ad.jp!intec.co.jp!toyama-noc.intec.co.jp!triton.ad.jp!news1.pu-toyama.ac.jp!icews5!newssinet!hakata!kudpc!sakunami!chiba-ns!news.chiba-u.ac.jp!eclnews!sinetnews!news.nacsis.ac.jp!alps!cryst!escargot!t-server!news.nc.u-tokyo.ac.jp!makino From: makino@chianti.c.u-tokyo.ac.jp (Jun Makino) Newsgroups: fj.comp.image,fj.sci.math,fj.comp.misc Subject: Re: 近似計算について Date: 22 Aug 1996 10:27:10 GMT Organization: College of Arts and Sciences, Univ. of Tokyo Lines: 55 Message-ID: References: NNTP-Posting-Host: muscat.c.u-tokyo.ac.jp In-reply-to: tsuji@sd.tokyo.fujifilm.co.jp's message of Thu, 15 Aug 1996 12:27:26 +0900 Xref: coconuts.jaist fj.comp.image:1999 fj.sci.math:3075 fj.comp.misc:1407 >>>>> On Thu, 15 Aug 1996 12:27:26 +0900, tsuji@sd.tokyo.fujifilm.co.jp (Hideyuki TSUJI) said: >  辻@富士フイルムといいます。単なる雑談なのですが、もし興味があれば > どなたか付き合って頂けないでしょうか。 牧野@東大駒場です。この手の話には(実際に使うためもあって)興味 があります。 >  画像処理などで、「ごく大ざっぱな結果さえ分かればいいや」という場合 > に、掛け算などをもっと簡単な操作で代用することがあります。 >  例えば・・・ >  0 <= x,y <= 1.0 の場合に、 >  xy の代用品として、min(x,y) や max(x+y-1, 0) を使う。とか、 >  (x^2 + y^2)^0.5 の代用品として、max(x,y) や (x + y) / 2 を使う。 >  などです。 >  十数年前8ビットパソコンを(趣味で)使っていたときに、こういうこと > に凝っていました。 >  今のパソコンに使われている高性能なマイクロプロセッサは、掛け算を処 > 理する専用ハードウエアを持っているので、こういう小細工は不要であるど > ころか、条件分岐を必要とする min や max などの処理のほうがむしろ時間 > を要するので有害らしいと聞いています。 うーん、平方根はやっぱり遅いので、ユークリッド距離についてはいい 加減でいい時にはまだ上のような方法にも使い道があると思います。少 し古い話だと、 CACM のコラム、 Programming Pearls にユークリッド 距離をいかに速く計算するかというだけの話をした記事があったと思い ます。これは本になって日本語訳もあったと思います。(手元にものが ないのですが、、、) それに最近のマイクロプロセッサには条件つきの実行命令があったりす るようなので、 max とか min が遅いとも限らないのではないでしょう か。 >  さて、こういった「代用品」はもちろん私以外の人も必要に迫られて色々 > な工夫をしていたと思うのですが、まとまって本になっているのでしょうか、 > それとも、こういう(インチキくさい?)テクニックは個人的なワザとして > こっそり使われるだけのものなのでしょうか。 いわゆる computer arithmetic の本には、こういったことまではあまり 書いてないですよね。状況に応じた特殊な最適化ができるところが多い ために、逆に一般性のある話にまとめにくいのではないでしょうか。 >  こういう話をまとめた本はあるでしょうか? 僕も知りたいです。 牧野@東大駒場