From: Shigeo Kobayashi Date: 2000-03-01T13:06:32+09:00 Subject: [ruby-dev:9330] Re: GC Problem ? 小林です。 ----- Original Message ----- 送信者 : "Koji Arai" 件名 : [ruby-dev:9326] Re: GC Problem ? > また、実装をちゃんと見てなくて書いちゃいますが(- - ;、オブジェ > クトを自己参照しているのはどういうわけなのでしょうか?なんだ > か、不思議に思えるのです。 > Ruby オブジェクトは T_DATA(struct RData) であり、 計算は struct Real だからです。T_DATA と BigFloat 間には全く関連性が無い以上、明確に分離させたほ うが見やすいとの判断です(好みの問題ですが)。 Ruby 本体に手をいれて T_BIGFLOAT なるものを定 義すれば「自己参照」は要らなくなりますが、それでも 今のソースを大きく変更する必要はないように配慮は してあるつもりです。 > でしょうか?効率化のため?既存のライブラリの流用のため? 誤解の無いように「既存」という言葉を補足します。 確かに「Real」を先に作成してから拡張ライブラリに したという経緯はありますが、BigFloat の計算部分 は全て私が独自作成したものです。残念ながら、見 ていただければ分かるように、義務教育で教わった 十進計算を正直に実行しているだけですので「独創 性」を主張できるような部分はありません。 ただ、私が探した限りでは、このようにバカ正直に やるもの(のソースコード)を見つけることができま せんでした。もし、ご存知でしたら教えていただけれ ば幸いです。 Java には BigDecimal というものがありますが、ア プローチの仕方が異なるようです。ヘルプでは 「BigDecimal は、任意の精度の整数値と、小数点の 右側の桁数を示す負でない整数スケール値によっ て構成されます (intVal/10**scale になります)。」 となっています。 小林 茂雄 E-Mail: shigeo@tinyforest.gr.jp Home Page: http://www.tinyforest.gr.jp