8.10.8 `nd_gr', `nd_gr_trace', `nd_f4', `nd_weyl_gr', `nd_weyl_gr_trace'
------------------------------------------------------------------------

nd_gr(PLIST,VLIST,P,ORDER)
nd_gr_trace(PLIST,VLIST,HOMO,P,ORDER)
nd_f4(PLIST,VLIST,MODULAR,ORDER)

nd_weyl_gr(PLIST,VLIST,P,ORDER)
nd_weyl_gr_trace(PLIST,VLIST,HOMO,P,ORDER)
     :: グレブナ基底の計算 (組み込み函数)

RETURN
     リスト

PLIST  VLIST
     リスト

ORDER
     数, リストまたは行列

HOMO
     フラグ

MODULAR
     フラグまたは素数

   * これらの函数は, グレブナ基底計算組み込み関数の新実装である.

   * `nd_gr' は, `p' が 0 のとき有理数体上の Buchberger
     アルゴリズムを実行する. `p' が 2 以上の自然数のとき, GF(p) 上の
     Buchberger アルゴリズムを実行する.

   * `nd_gr_trace' は有理数体上で trace アルゴリズムを実行する.  `p' が
     0 または 1 のとき, 自動的に選ばれた素数を用いて, 成功する まで
     trace アルゴリズムを実行する.  `p' が 2 以上のとき, trace はGF(p)
     上で計算される. trace アルゴリズム が失敗した場合 0 が返される.
     `p' が負の場合, グレブナ基底チェックは 行わない. この場合, `p' が
     -1 ならば自動的に選ばれた素数が,
     それ以外は指定された素数を用いてグレブナ基底候補の計算が行われる.

   * `nd_f4' は, 有限体上の F4 アルゴリズムを実行する.

   * `nd_weyl_gr', `nd_weyl_gr_trace' は Weyl 代数用である.

   * いずれの関数も, 有理関数体上の計算は未対応である.

   * 一般に `dp_gr_main', `dp_gr_mod_main' より高速であるが,
     特に有限体上の場合顕著である.

     [38] load("cyclic")$
     [49] C=cyclic(7)$
     [50] V=vars(C)$
     [51] cputime(1)$
     [52] dp_gr_mod_main(C,V,0,31991,0)$
     26.06sec + gc : 0.313sec(26.4sec)
     [53] nd_gr(C,V,31991,0)$
     ndv_alloc=1477188
     5.737sec + gc : 0.1837sec(5.921sec)
     [54] dp_f4_mod_main(C,V,31991,0)$
     3.51sec + gc : 0.7109sec(4.221sec)
     [55] nd_f4(C,V,31991,0)$
     1.906sec + gc : 0.126sec(2.032sec)

参照
     *Note `dp_ord': dp_ord, *Note `dp_gr_flags dp_gr_print':
     dp_gr_flags dp_gr_print, *Note `計算および表示の制御':
     計算および表示の制御.

