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

## 計算および表示の制御

グレブナ基底の計算において, さまざまなパラメタ設定を行うことにより計算, 表示を制御することができる. これらは, 組み込み函数 `dp_gr_flags()` により設定参照することができる. 無引数で `dp_gr_flags()` を実行する と, 現在設定されているパラメタが, 名前と値のリストで返される.

    [100] dp_gr_flags();
    [Demand,0,NoSugar,0,NoCriB,0,NoGC,0,NoMC,0,NoRA,0,NoGCD,0,Top,0,
    ShowMag,1,Print,1,Stat,0,Reverse,0,InterReduce,0,Multiple,0]
    [101]

以下で, 各パラメタの意味を説明する. on の場合とは, パラメタが 0 でない場合を いう. これらのパラメタの初期値は全て 0 (off) である.

`NoSugar`
  on の場合, sugar strategy の代わりに Buchbergerの normal strategy が用 いられる.
`NoCriB`
  on の場合, 不必要対検出規準のうち, 規準 B を適用しない.
`NoGC`
  on の場合, 結果がグレブナ基底になっているかどうかのチェックを行わない.
`NoMC`
  on の場合, 結果が入力イデアルと同等のイデアルであるかどうかのチェック を行わない.
`NoRA`
  on の場合, 結果を reduced グレブナ基底にするための interreduce を行わない.
`NoGCD`
  on の場合, 有理式係数のグレブナ基底計算において, 生成された多項式の, 係数の content をとらない.
`Top`
  on の場合, normal form 計算において頭項消去のみを行う.
`Reverse`
  on の場合, normal form 計算の際の reducer を, 新しく生成されたものを優 先して選ぶ.
`Print`
  on の場合, グレブナ基底計算の途中におけるさまざまな情報を表示する.
`PrintShort`
  on で、Print が off の場合, グレブナ基底計算の途中の情報を短縮形で表示する.
`Stat`
  on で `Print` が off ならば, `Print` が on のとき表示さ れるデータの内, 集計データのみが表示される.
`ShowMag`
  on で `Print` が on ならば, 生成が生成される毎に, その多項式の 係数のビット長の和を表示し, 最後に, それらの和の最大値を表示する.
`Content`
`Multiple`
  0 でない有理数の時, 有理数上の正規形計算において, 係数のビット長の和が `Content` 倍になるごとに係数全体の GCD が計算され, その GCD で 割った多項式を簡約する. `Content` が 1 ならば, 簡約するごとに GCD 計算が行われ一般には効率が悪くなるが, `Content` を 2 程度 とすると, 巨大な整数が係数に現れる場合, 効率が良くなる場合がある. backward compatibility のため、`Multiple` で整数値を指定できる.
`Demand`
  正当なディレクトリ名 (文字列) を値に持つとき, 生成された多項式はメモリ 中におかれず, そのディレクトリ中にバイナリデータとして置かれ, その多項 式を用いる normal form 計算の際, 自動的にメモリ中にロードされる. 各多 項式は, 内部でのインデックスをファイル名に持つファイルに格納される. ここで指定されたディレクトリに書かれたファイルは自動的には消去されない ため, ユーザが責任を持って消去する必要がある.

`Print` が 0 でない場合次のようなデータが表示される.

    [93] gr(cyclic(4),[c0,c1,c2,c3],0)$
    mod= 99999989, eval = []
    (0)(0)<<0,2,0,0>>(2,3),nb=2,nab=5,rp=2,sugar=2,mag=4
    (0)(0)<<0,1,2,0>>(1,2),nb=3,nab=6,rp=2,sugar=3,mag=4
    (0)(0)<<0,1,1,2>>(0,1),nb=4,nab=7,rp=3,sugar=4,mag=6
    .
    (0)(0)<<0,0,3,2>>(5,6),nb=5,nab=8,rp=2,sugar=5,mag=4
    (0)(0)<<0,1,0,4>>(4,6),nb=6,nab=9,rp=3,sugar=5,mag=4
    (0)(0)<<0,0,2,4>>(6,8),nb=7,nab=10,rp=4,sugar=6,mag=6
    ....gb done
    reduceall
    .......
    membercheck
    (0,0)(0,0)(0,0)(0,0)
    gbcheck total 8 pairs
    ........
    UP=(0,0)SP=(0,0)SPM=(0,0)NF=(0,0)NFM=(0.010002,0)ZNFM=(0.010002,0)
    PZ=(0,0)NP=(0,0)MP=(0,0)RA=(0,0)MC=(0,0)GC=(0,0)T=40,B=0 M=8 F=6
    D=12 ZR=5 NZR=6 Max_mag=6
    [94]

最初に表示される `mod`, `eval` は, trace-lifting で用いられる法 である. `mod` は素数, `eval` は有理式係数の場合に用いられる 数のリストである.

計算途中で多項式が生成される毎に次の形のデータが表示される.

    (TNF)(TCONT)HT(INDEX),nb=NB,nab=NAB,rp=RP,sugar=S,mag=M

それらの意味は次の通り.

`TNF`
  normal form 計算時間 (秒)
`TCONT`
  content 計算時間 (秒)
`HT`
  生成された多項式の頭項
`INDEX`
  S-多項式を構成する多項式のインデックスのペア
`NB`
  現在の, 冗長性を除いた基底の数
`NAB`
  現在までに生成された基底の数
`RP`
  残りのペアの数
`S`
  生成された多項式の sugar の値
`M`
  生成された多項式の係数のビット長の和 (`ShowMag` が on の時に表示される. )

最後に, 集計データが表示される. 意味は次の通り. (時間の表示において, 数字が 2 つあるものは, 計算時間と GC 時間のペアである.)

`UP`
  ペアのリストの操作にかかった時間
`SP`
  有理数上の S-多項式計算時間
`SPM`
  有限体上の S-多項式計算時間
`NF`
  有理数上の normal form 計算時間
`NFM`
  有限体上の normal form 計算時間
`ZNFM`
  `NFM` の内, 0 への reduction にかかった時間
`PZ`
  content 計算時間
`NP`
  有理数係数多項式の係数に対する剰余演算の計算時間
`MP`
  S-多項式を生成するペアの選択にかかった時間
`RA`
  interreduce 計算時間
`MC`
  trace-lifting における, 入力多項式のメンバシップ計算時間
`GC`
  結果のグレブナ基底候補のグレブナ基底チェック時間
`T`
  生成されたペアの数
`B, M, F, D`
  各 criterion により除かれたペアの数
`ZR`
  0 に reduce されたペアの数
`NZR`
  0 でない多項式に reduce されたペアの数
`Max_mag`
  生成された多項式の, 係数のビット長の和の最大値

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