From: zunda Date: 2008-12-17T11:30:04+09:00 Subject: [ruby-dev:37476] Re: Math and NaN zundaと申します NaNの取り扱いについて、2000年ごろのそれもCでの経験ですみませんが: --- Yukihiro Matsumoto wrote: > In message "Re: [ruby-dev:37416] Re: Math and NaN" > on Sat, 13 Dec 2008 11:25:51 +0900, Tadayoshi Funaba writes: > > |> 正直なところ、あんまり考えてなかった、ということですね。 > |> どうするのが望ましいと言うのがあればお伺いしたいです。 > | > |どういうのが望ましいのか判りませんが、中途半端な感じがします。 > | > |NaN になってもそのまま放置してる処理系がかなり多いと思います。ruby ライ > |ブラリでも一切手出ししない、という考えもあり得たと思います。 > > 基本的に、 > > * linux manでエラーセクションがあるものについてnanをチェッ > クする > * 無限について言及があるものはinfもチェックする > > としていたのですが,参照していたのは日本語のmanで、今、英語の > manをチェックしたらもっと詳しく書いてありますね、うーむ。 > > 方針としては > > * 一切チェックしない > * 全部チェックする > > のいずれかなのでしょうね。どっちがいいんでしょうか。実際に使 > う人の意見をおうかがいしたいところです。 数値演算をする場合には、全部チェックして例外が上がる方がうれしい です。あるデータ点でInfやNaNが出るとイテレーションを重ねるごとに それが他のデータ点にも伝搬していって無意味な計算を続けた上で、 どこでおかしな計算が起きたのか辿ることができなくなります。 2000年当時Cを使っていた時は数値演算プロセッサがSIGFPEを出すように した上でシグナルハンドラを設定していたように記憶しています。この事例 ではEDOMではなくてゼロ除算かそれに類するようなものを捕捉したかったの だと思います。 いっぽう > |NaN になってもそのまま放置してる処理系がかなり多い ということにもそれなりの理由があるはずですよね。普段は気にしない? 以上、参考まで。 -------------------------------------- Power up the Internet with Yahoo! Toolbar. http://pr.mail.yahoo.co.jp/toolbar/