From: RedMagic Date: 2003-04-02T08:39:17+09:00 Subject: [ruby-dev:19954] Re: Exceptions in Math WATANABE Hirofumi wrote: >わたなべです。 > >Akio Takenaka writes: > > > >>>1.8ではErrno::EDOM例外が発生します。 >>> >>> > >Linux(glibc)ではそうなるってだけで、他の環境ではerrnoによりますね。 >たとえばFreeBSD 4.4では > >% ruby -e 'p Math::sqrt(-1)' >NaN >% ruby -e 'p Math::log(-1)' >NaN >% ruby -e 'p Math::log(0)' >-Infinity >% ruby -v >ruby 1.8.0 (2003-03-31) [i386-freebsd] > >になります。 > あらら,ビルド環境に依存するんですか. 汎用性を求められるプログラムを書いているわけではないんですが,うーん. >>でも、log(x)の真数条件って x > 0 ですよね? >>log(0) に対して Errno::ERANGE が発生するのは、やはりそういう要求が >>あるからなのでしょうか? >> >> > >たしかANSI Cでは、0でERANGE、負でEDOMと決まっていたと思います。 > ありがとうございます.ちょっくら調べてきますね. お手数おかけしました.