`gr', `hgr', `gr_mod', `dgr'
----------------------------

gr(PLIST,VLIST,ORDER)
hgr(PLIST,VLIST,ORDER)
gr_mod(PLIST,VLIST,ORDER,P)
dgr(PLIST,VLIST,ORDER,PROCS)
     :: グレブナ基底の計算

RETURN
     リスト

PLIST  VLIST  PROCS
     リスト

ORDER
     数, リストまたは行列

P
     2^27 未満の素数

   * 標準ライブラリの `gr' で定義されている.

   * いずれも, 多項式リスト PLIST の, 変数順序 VLIST, 項順序型 ORDER
     に関するグレブナ基底を求める. `gr()', `hgr()' は 有理数係数,
     `gr_mod()' は GF(P) 係数として計算する.

   * VLIST は不定元のリスト. VLIST に現れない不定元は,
     係数体に属すると見なされる.

   * `gr()', trace-lifting (モジュラ演算を用いた高速化) および sugar
     strategy による計算, `hgr()' は trace-lifting および 斉次化による
     矯正された sugar strategy による計算を行う.

   * `dgr()' は, `gr()', `dgr()' を 子プロセスリスト PROCS の 2
     つのプロセスにより同時に計算させ, 先に結果を返した方の結果を返す.
     結果は同一であるが, どちらの方法が 高速か一般には不明のため,
     実際の経過時間を短縮するのに有効である.

   * `dgr()' で表示される時間は, この函数が実行されているプロセスでの
     CPU 時間であり, この函数の場合はほとんど通信のための時間である.

     [0] load("gr")$
     [64] load("cyclic")$
     [74] G=gr(cyclic(5),[c0,c1,c2,c3,c4],2);
     [c4^15+122*c4^10-122*c4^5-1,...]
     [75] GM=gr_mod(cyclic(5),[c0,c1,c2,c3,c4],2,31991)$
     24628*c4^15+29453*c4^10+2538*c4^5+7363
     [76] (G[0]*24628-GM[0])%31991;
     0

参照
     *Note `dp_gr_main dp_gr_mod_main dp_gr_f_main dp_weyl_gr_main
     dp_weyl_gr_mod_main dp_weyl_gr_f_main': dp_gr_main dp_gr_mod_main
     dp_gr_f_main dp_weyl_gr_main dp_weyl_gr_mod_main dp_weyl_gr_f_main,
     *Note `dp_ord': dp_ord.

