Residue

剰余類

スーパークラス:

クラス メソッド:

Residue.default_keys(keys, offset)
デフォルトの検索キーと対応する手続き一括して登録します。
  keys   剰余類(Residue )検索キーの配列
  offset 最初の検索キーに対する剰余
Residue.get(key [, n=1])
検索キーから、使用する Residue オブジェクトを選択して返します。
  key  剰余類(Residue )検索キー
  n    n 番目にマッチした Residue オブジェクトを選択するように指示
Residue.mod(nn, &dd)
nn を dd で「割った」商(quot), 余り(rem)および除数(div)を返します。
余りは非負、商は Integer  です。
  nn  被除数
  dd     nn  = rem + dd(quot)
         div = dd(quot+1)-dd(quot)
      となるように rem, div, quot を決めたい手続き
Residue.china(an, ad, bn, bd)
中国剰余(xn, xd)を返します。
ここでは、中国剰余を
  xd で割って xn 余る ≡ (ad で割って an 余り) かつ (bd で割って bn 余る)
となるような組 (xn, xd) のこととします。
  an, ad, bn, bd  整数
Residue.new(rem, div [, quot=0 [, *quality])
Residue オブジェクトを生成して返します。
  name Residue オブジェクトの名前
  rem  余り
  div  除数(Numeric またはEphemeris )
  quot 商
  quality  性質定義ハッシュ

パブリック インスタンス メソッド:

Residue#rem
Residue#div
Residue#quot
それぞれ、余り、除数、商を返します。
Residue#new_quot(q)
Residue オブジェクトを複製して、quotを設定し直します。
  q  新しい商
Residue#>>(n)
Residue オブジェクトを複製して、quot を n だけ大きく設定し直します。
  n  quot に加える整数
Residue#<<(n)
Residue オブジェクトを複製して、quot を n だけ小さく設定し直します。
  n  quot から引く整数
Residue#*(other)
Residue オブジェクト self, other の両方の条件を同時に満たす
Residue オブジェクト(中国剰余)を返します。
self, other の商は無視されます。
  other Residue オブジェクト
Residue#+(other)
other を基準にして「self.div で割って self.rem 余る値」を返します。
self.quot が 0 の場合、other を下回らない最小の値となり、
self.quot が n 増減すると、値は n * self.div だけ増減します。
  other Numeric オブジェクトまたはDate オブジェクト
Residue#+@ (one operand operator '+')
self の複製を返します。
Residue#-@ (one operand operator '-')
self を複製して、quot を -1 - quot に設定し直します。

ブライベート インスタンス メソッド:

Residue#_qualify
Residue オブジェクトの性質定義を初期設定します。
@Title      = Residue.get のキーとなる剰余類名

他クラスのインスタンス メソッドの追加:

Numeric#moddiv(dd)
self を dd で割った余りおよび商を返します。
余りは非負、商は Integer  です。
  dd  除数
Float#to_r
最良近似分数を用いて FloatRational  に変換します。