ごとけんです
Precision のドキュメントを書いてみました.これで良ければ
英訳します.
-------------------------------------------------------------------
Precision
精度をもつ具象数値クラスのためのMixin. ここでいう精度とは
実数の近似の良さを意味しますので, 抽象数値クラスや複素数,
行列などそれら自身が実数に含まれないような クラスにインクル
ードすべきではありません.
クラスメソッド:
induced_from(number)
number を自分のクラスに変換した結果を返します. デフ
ォルトでは,TypeError を発生するので,再定義して使い
ます. 再定義のさい,prec を使って実装すると, 無限
ループになる可能性があるので注意してください.
メソッド:
prec(klass)
self を精度 klass に変換した結果を返します. デフォ
ルトでは、 klass.induced_from(self) が呼び出しその結
果を返すので, klass.induced_from が自分のクラスに対
応してない場合は, この prec を再定義しておく必要が
あります.
prec_i
Integer に変換した結果を返します. prec(Integer) と
等価です.
prec_f
Float に変換した結果を返します. prec(Float) と等価
です.
coerce(number)
Numeric#coerce の prec を使った実装です. 以下と等価
です.
def coerce(num)
if num.type == self.type
[num, self]
else
[num.prec(self.type), self]
end
end
数値クラスの算術演算子は通常自分と演算できないクラス
を オペランド x として受け取ると x.coerce(self) を使
って自分とオペランドを 変換した上で演算を行います.
-------------------------------------------------------------------
-- gotoken