正木です。

|From: GOTO Kentaro <gotoken / notwork.org>
|Subject: [ruby-math:00608] Re: int / int -> ?
|Date: Sun, 26 Aug 2001 16:13:20 +0900 (JST)
|
|効率の良いRealの実装はようするに、合成されてできた数オブジェ
|クトをどれだけ最適化してコンパイルするかにかかっています。そ
|ういう意味ではProcを使った実装は構文木にアクセスできないので
|最適化はできないことになります。

Ruby ではどういう方式が良いとおもわれますか?

|Subject: [ruby-math:00609] Re: int / int -> ?
|
|無限精度の考え方は一通りではないですが、無限精度でもあらかじ
|め必要な桁数を与える流儀もあります。例えば収束列 s で実数を
|実装したとして、10e-n の精度でその値を得たい時は s[a[n]] ま
|で求めれば良いという帰納関数 a を用意するのです。こうしてお
|かないと停止性を保証できないので、理論的にはこの a を与える
|という制約は重要です。ご存知とは思いますが念のため。

私の方式では、 s と同時に 0 に収束する誤差項の無限列 error
を用意しておいて、精度 epsilon で近似値を得たい時は
s[error.find_with_index{|e,i| e <= epsilon }[1]]
とします。上記の a[n] は
a[n]=error.find_with_index{|e,i| e <= 10**-n }[1]
となります。これではまづいですか?