From: gotoken@... (GOTO Kentaro) Date: 2000-01-07T15:08:06+09:00 Subject: [ruby-dev:8869] Re: DoubleFloat In message "[ruby-dev:8867] Re: DoubleFloat" on 00/01/07, EGUCHI Osamu writes: >ところで、SigleFloat の存在理由ってどういう物がありますか? >SingleFloat の特徴を考えると、、 > > + メモリ消費量は殆んど変わらない > + 演算速度は殆んど変わらない > (C 言語が float を double に昇格して演算するので) > + 精度か落ちる > >の様に思え、これだけを見ると存在価値に少々疑問を感じます。 >#むしろ C の long double に対応するクラスが望まれているかも、 主に精度の問題です。実測データの多くは1に十分近い値であり、 なおかつ精度も高々4桁くらいしかありません。そのため数値デー タはfloatのビットマップとして扱うことが通例であるという点が まず1点。それから多くのfortranのライブラリ関数は単精度のイン ターフェイスを持っていますが、毎度キャストするのは効率が悪い 上に、精度的に問題があります。 これらの点を昔まつもとさんに認められて実装は自分でしてねって ことでお墨付をいただいた次第です。 >#むしろ C の long double に対応するクラスが望まれているかも、 long double というか拡張倍精度形式に自由度があって処理系依存 性が高いので低速なソフトウェア実現をしないといけないでしょう。 >まだ実装には移していませんが、この種のアプローチ(高速低精度な実数)に >需要はあるでしょうか? 数値の需要は高速性よりも、ポータビリティの要求が大きいです。 その点でいうと、浮動小数点数ではなく2バイト整数というのが欲 しい局面は結構あります。ちなみに整数の規約はCのレベルにしか 存在しないためにずっと緩いので、2バイト整数の実装は面倒です。 -- gotoken