Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Precisionモジュール

module Precision

クラスの継承リスト: Precision

要約

精度をもつ具象数値クラスのためのモジュールです。

Mix-in により 精度をもつ具象数値クラスのためのユーティリティを提供します。

ここでいう精度とは実数の近似の良さを意味します。 本モジュールは、抽象数値クラスや複素数、行列など、それら自身が実数に含まれないような クラスにインクルードすべきではありません。

特異メソッド

included(module_or_class) -> Precision

Precision をインクルードするクラスやモジュールに対してメソッド induced_from を自動的に定義します。

このメソッドは、Precision がインクルードされた時に呼ばれます。詳細はModule#included を参照してください。

[PARAM] module_or_class:
Precision をインクルードするクラスまたはモジュール
induced_from(number) -> object

number を自分のクラスに変換した結果を返します。

デフォルトの定義は、例外 TypeError を発生させるので、 Mix-in したクラスでこのメソッドを再定義する必要があります。 再定義に、Precision#prec を使うと、 無限ループになる可能性があります。

[PARAM] number:
変換元の数値
[EXCEPTION] TypeError:
Mix-inしたクラスでこのメソッドが再定義されていない場合に発生します。

インスタンスメソッド

prec(klass) -> object

self を精度 klass に変換した結果を返します。

デフォルトの定義では klass.induced_from(self) を呼び出し、 その結果を返します。

新しく精度クラスを作るときは組み込みクラスの Precision.induced_from を変更するのではなく、この prec の再定義で対応するべきです。

[PARAM] klass:
精度を持つ数値クラス
prec_f -> Float

self を Float に変換します。 prec(Float) と等価です。

prec_i -> Fixnum

self を Integer に変換します。 prec(Integer) と等価です。

module Precision