まつもと ゆきひろです

In message "[ruby-dev:8874] Re: DoubleFloat"
    on 00/01/07, EGUCHI Osamu <eguchi / shizuokanet.ne.jp> writes:

|gotoken> >あぁ、なるほど、結局 C の float や short の挙動と完全に一致する
|gotoken> >クラスを(データの)ポータビリティの為に欲しいと言う事ですね。
|gotoken> >特に精度についての互換性を要求している様に思えますが、
|gotoken> >この理解であってますか?
|gotoken> 
|gotoken> です。
|gotoken> 
|gotoken> ぼくも最近まで知らなかったですが浮動小数点数は整数と異なり
|gotoken> IEEEでカッチリフォーマットが定められているので、xdr(3)を持ち
|gotoken> 出すまでもなく、ネットワークバイトオーダーでやりとりして双方
|gotoken> では単精度で計算するような用途はわりかし多いんです。それと、
|gotoken> 世の中に数アマタあるfortranで書かれたライブラリとの相性の問
|gotoken> 題もあります。
|
|なるほど、理解できました。
|
|確かに、IEEE754 に殆んど統一されているため、むしろ整数よりも
|同一精度の浮動小数点の方がポータブルなんですね一致するんですね。
|#こう言う見方で考えた事なかったです。頭っから否定して失礼しました。_o_

私はまだ理解できてません。えぐちさんのおっしゃるように

In message "[ruby-dev:8870] Re: DoubleFloat"
    on 00/01/07, EGUCHI Osamu <eguchi / cagiva.shizuokanet.ne.jp> writes:

|また C では、float -> double -> float の2回の型変換で、
|精度が失われない事を処理系に要求していますので、これ自体が
|現状で精度に問題を生じてはいないと思います。

でかつ

|#内部表現は float でも演算の度に double に昇格するのが
|#C 言語の仕様ですので、(暗黙の)キャストは不可避です。

ということでしたら、Ruby世界(つまりはC世界)でのShortFloatの
存在価値ってのはなんなんでしょう? FORTRAN世界との出入口でだ
け float <-> double が行われるので十分のように思います。

あ、それとも

  float op float op float -> float

と

  double op double op double cast -> float

でC世界でも結果が違うことがあるってことなのかしら?

				まつもと ゆきひろ /:|)