Go to the first, previous, next, last section, table of contents.

### `nd_gr`, `nd_gr_trace`, `nd_f4`, `nd_f4_trace`, `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_f4_trace(plist,vlist,homo,p,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` および `nd_f4_trace` は有理数体上で trace アルゴリズムを実行する. `p` が 0 または 1 のとき, 自動的に選ばれた素数を用いて, 成功する まで trace アルゴリズムを実行する. `p` が 2 以上のとき, trace はGF(p) 上で計算される. trace アルゴリズム が失敗した場合 0 が返される. `p` が負の場合, グレブナ基底チェックは 行わない. この場合, `p` が -1 ならば自動的に選ばれた素数が, それ以外は指定された素数を用いてグレブナ基底候補の計算が行われる. `nd_f4_trace` は, 各全次数について, ある有限体上で F4 アルゴリズム で行った結果をもとに, その有限体上で 0 でない基底を与える S-多項式のみを 用いて行列生成を行い, その全次数における基底を生成する方法である. 得られる 多項式集合はやはりグレブナ基底候補であり, `nd_gr_trace` と同様の チェックが行われる.
- `nd_f4` は `modular` が 0 のとき有理数体上の, `modular` が マシンサイズ素数のとき有限体上の 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)

`参照`
  section `dp_ord`, section `dp_gr_flags`, `dp_gr_print`, section 計算および表示の制御.

Go to the first, previous, next, last section, table of contents.