前田です。
In message "[ruby-list:7074] Re: MP [Re: infinity]"
石塚圭樹 <keiju / rational.com> wrote:
|# でも, Float::Infの比較回りはBUGっているけど..
なぜかわかりました。
Rubyだと<=>で比較していますが、NaNなどの場合にはまずいですね。
static VALUE
flo_cmp(x, y)
VALUE x, y;
{
double a, b;
...
if (a == b) return INT2FIX(0);
if (a > b) return INT2FIX(1);
return INT2FIX(-1);
}
これだと1 < NaN,1 == NaN,1 > NaNのすべてをfalseにするのは無理ですね。
演算ごとに全部定義するしかないのかな...。
--
前田 修吾