From: WATANABE Hirofumi Date: 2003-04-01T11:18:59+09:00 Subject: [ruby-dev:19952] Re: Exceptions in Math わたなべです。 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と決まっていたと思います。 -- わたなべひろふみ