小林です。

今のところ、BigDecimalを積極的にメンテする時間&精神的余裕はない
ので、むらたさんのメンテナ立候補はありがたいです。

で、前置きを若干述べさせていただきますと、当時、ソースコードとして
参考になるのは Java の BigDecimal がありました。これは Ruby で言
うならば Bignum を利用する方式で、非常に高速です。
当然考慮しましたが、当初目標の「任意の桁位置で丸める」が面倒そ
うなのでボツ(内部が2進ですので、特定桁位置の10進数字を知るに
は多分全体を10で割ったり掛けたりしてシフトする必要があります)。
現状は、かつてBCDとかPacked Decimalと呼ばれた馬鹿正直な方式
ですが、丸めるには整数配列のインデックスを直接指定できます。

ただ、参考になるソースコードが見つけられず、スクラッチから試行錯
誤の連続でした。私個人のライブラリー用として開発中に Ruby と出会
い、その魅力に惹かれて何とか両方で稼働するようにしたというのもあ
りますが、私自身、納得できるコードとは言い難いのも事実です。
従って、現状のふたまたをかけたような構造をすっきりリファインして
(仕様も含めて)整理するということなら是非ともお願いしたいと思いま
すし、できる範囲で協力したいと思います(といっても、ここも殆どチェッ
クしてないので直メールに返事するくらいのことしかできません。それ
も100%約束はできませんが...)。

あと、BigDecimal('1').divmod(BigDecimal('3E-9'))の件が話題になっ
ていますが、先月投稿したパッチ([ruby-dev:40105] )はダメ?

以上です。