ごとけんです

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