next up previous contents
: 再帰表現多項式の定義 : 数, 多項式 の CMO : 整数 ZZ   目次

分散表現多項式 Dpolynomial

環とそれに属する多項式は次のような考えかたであつかう.

Generic DMS ring に属する元は, 変数を $n$ 個持つ 適当な係数集合 $K$ を持つ多項式環 $K[x_1, \ldots, x_n]$ の元である. 係数集合 $K$ がなにかは, 実際データを読み込み, Coefficient を見た段階で わかる. この環に属する多項式を CMO 形式でうけとった場合, 各サーバはその サーバの対応する Object に変換しないといけない. この変換の仕方は, 各サーバ毎にきめる.

Asir の場合は, $K[x_1, \ldots, x_n]$ の元は分散表現多項式に変換される.

kan/sm1 の場合は事情は複雑である. kan/sm1 は, Generic DMS ring にあたる クラスをもたない. つまり, Default で存在する, $n$ 変数の分散表現多項式環は存在しないわけである. したがって, kan/sm1 では, DMS of N variables が来た場合, これを CurrentRing の元として読み込む. CurrentRing の変数の数が $n'$ で, $n' < n$ だと新しい多項式環を生成してデータを読み込む. Order その他の optional 情報はすべて無視する.

DMS の 2 番目のフィールドで, Ring by Name を用いた場合, 現在の名前空間で変数 yyy に格納された ring object の元として, この多項式を変換しなさいという意味になる. kan/sm1 の場合, 環の定義は ring object として格納されており, この ring object を 変数 yyy で参照することにより CMO としてうけとった 多項式をこの ring の元として格納できる.

Example: (すべての数の表記は 16 進表記)

Z/11Z [6 variables]
(kxx/cmotest.sm1) run
[(x,y) ring_of_polynomials ( ) elimination_order 11 ] define_ring ;
(3x^2 y). cmo /ff set ;
[(cmoLispLike) 1] extension ;
ff ::
Class.CMO CMO StandardEncoding: size = 52, size/sizeof(int) = 13, 
tag=CMO_DISTRIBUTED_POLYNOMIAL 

  0  0  0 1f  0  0  0  1  0  0  0 18  0  0  0 13  0  0  0  6
  0  0  0  0  0  0  0  2  0  0  0  0  0  0  0  0  0  0  0  1
  0  0  0  0  0  0  0  2  0  0  0  3

ff omc ::
 (CMO_DISTRIBUTED_POLYNOMIAL[1f],[size=]1,(CMO_DMS_GENERIC[18],),
  (CMO_MONOMIAL32[13],3*x^2*y),),
$ 3 x^2 y$ は 6 変数の多項式環の 元としてみなされている.



Nobuki Takayama 平成17年2月10日