小林です。

----- Original Message -----
送信者 : GOTO Kentaro <gotoken / math.sci.hokudai.ac.jp>
件名 : [ruby-math:00048] Re: NaN


>
> おろ、VCではisnan()は float.h の _isnan() を使うんじゃなかっ
> たでしたっけ…どうだったか覚えてます?? > えぐちさん方面 ^^;;
>
"_isnan" を grep したけど使用していないようです。

>
> です。IEEE754ではそう決まってるんで今のmissing/isnan.cにしたんでしょ
> うね。おそらく。
>
> んで、VCでisnan()を
>
> #include <float.h>
> #define isnan(x) _isnan(x);
>
> で置き換えて作り直したらどうなりますか??
>
やってみました。 うまく "NaN" になりました。

>
> あ、それとは別に、0.0/0.0の動作もちょっと気になりますので、
> 先に以下を試してもらえませんか??
>
>   b = [0.0/0.0].pack("G").unpack("B64")[0]
>   p [b[0,1], b[1,11], b[12,52]]
>
> ちなみにはうち(1.4.3 (1999-12-07) [i386-freebsd3.2])ではこう
> なります:
>
> ["1", "11111111111",
"1000000000000000000000000000000000000000000000000000"]
>
これは、共に同じ結果になりました。

VCはIEEE754に準拠していないということですね。
「Win版は、修正が必要」ということで...

小林 茂雄
E-Mail: shigeo / tinyforest.gr.jp
Home Page: http://www.tinyforest.gr.jp