[#8824] [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro)

ごとけんです

38 messages 2000/01/05
[#8839] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8842] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8843] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8844] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8846] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8847] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8893] Re: [ruby-list:20142] Re: Range expansion? — Akinori MUSHA aka knu <knu@...>

 knuです。ruby-listから舞台を移しました。

13 messages 2000/01/09

[#8980] 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...>

近い将来の{Net,Free,Open}BSDにはKAME IPv6 stackが統合されています。

17 messages 2000/01/20
[#8981] Re: 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...> 2000/01/20

> それから、

[ruby-dev:8867] Re: DoubleFloat

From: EGUCHI Osamu <eguchi@...>
Date: 2000-01-07 05:48:53 UTC
List: ruby-dev #8867
えぐち@エスアンドイー です。

>>> In message [ruby-dev:8866] DoubleFloat
    On Fri, 7 Jan 2000 14:21:49 +0900, gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) said:

gotoken> ごとけんです
gotoken> 
gotoken> 随分前に申告した分ですが、Float のサブクラスとして C の 
gotoken> double と float に相当する DoubleFloat と SingleFloat につい
gotoken> てです。
gotoken> 
gotoken> もう忘れられているでしょうから、改めて説明すると、
gotoken> 
gotoken>   DoubleFloat < Float 
gotoken> 
gotoken> は新しく導入される抽象クラス Float のサブクラスであることを
gotoken> 除いて現行の Float と同じモノです。 to_f やリテラルの評価値
gotoken> は DoubleFloat になります。その他で唯一の例外は unpack のテ
gotoken> ンプレート f と e, E が SingleFloat を返すことです。

ところで、SigleFloat の存在理由ってどういう物がありますか?
SingleFloat の特徴を考えると、、

 + メモリ消費量は殆んど変わらない
 + 演算速度は殆んど変わらない
   (C 言語が float を double に昇格して演算するので)
 + 精度か落ちる

の様に思え、これだけを見ると存在価値に少々疑問を感じます。
#むしろ C の long double に対応するクラスが望まれているかも、

別のやりかたで、低精度と引き替えにメモリ消費の低減と
速度の向上する方法を考えた事があります。

これは Fixnum に似た実装で 32bit 浮動小数点数の仮数部の下2ビットを潰し、
他の値やポインタと識別し、極めて低精度の近似実数を実現するわけです。
#ポインタが4バイトアライメントされると仮定しています。

浮動小数は、
    MSB                LSB
       符号:指数:仮数

なフォーマットなので、LSB 側2ビットを削っても
精度を失う以上の弊害はなさそうです。
(Inf と NaN の同定だけは問題かも、、)

まだ実装には移していませんが、この種のアプローチ(高速低精度な実数)に
需要はあるでしょうか?

	えぐち

In This Thread