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

## Controlling Groebner basis computations

One can cotrol a Groebner basis computation by setting various parameters. These parameters can be set and examined by a built-in function `dp_gr_flags()`. Without argument it returns the current settings.

    [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]

The return value is a list which contains the names of parameters and their values. The meaning of the parameters are as follows. `on' means that the parameter is not zero.

`NoSugar`
  If `on', Buchberger's normal strategy is used instead of sugar strategy.
`NoCriB`
  If `on', criterion B among the Gebauer-Moeller's criteria is not applied.
`NoGC`
  If `on', the check that a Groebner basis candidate is indeed a Groebner basis, is not executed.
`NoMC`
  If `on', the check that the resulting polynomials generates the same ideal as the ideal generated by the input, is not executed.
`NoRA`
  If `on', the interreduction, which makes the Groebner basis reduced, is not executed.
`NoGCD`
  If `on', content removals are not executed during a Groebner basis computation over a rational function field.
`Top`
  If `on', Only the head term of the polynomial being reduced is reduced.
`Reverse`
  If `on', the selection strategy of reducer in a normal form computation is such that a newer reducer is used first.
`Print`
  If `on', various informations during a Groebner basis computation is displayed.
`Stat`
  If `on', a summary of informations is shown after a Groebner basis computation. Note that the summary is always shown if `Print` is `on'.
`ShowMag`
  If `on' and `Print` is `on', the sum of bit length of coefficients of a generated basis element, which we call magnitude, is shown after every normal computation. After comleting the computation the maximal value among the sums is shown.
`Multiple`
  If a non-zero integer, in a normal form computation over the rationals, the integer content of the polynomial being reduced is removed when its magnitude becomes `Multiple` times larger than a registered value, which is set to the magnitude of the input polynomial. After each content removal the registered value is set to the magnitude of the resulting polynomial. `Multiple` is equal to 1, the simiplification is done after every normal form computation. It is empirically known that it is often efficient to set `Multiple` to 2 for the case where large integers appear during the computation.
`Demand`
  If the value (a character string) is a valid directory name, then generated basis elements are put in the directory and are loaded on demand during normal form computations. Each elements is saved in the binary form and its name coincides with the index internally used in the computation. These binary files are not removed automatically and one should remove them by hand.

If `Print` is `on', the following informations are shown.

    [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]

In this example `mod` and `eval` indicate moduli used in trace-lifting. `mod` is a prime and `eval` is a list of integers used for evaluation when the ground field is a field of rational functions.

The following information is shown after every normal form computation.

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

Meaning of each component is as follows.

`TNF`
  CPU time for normal form computation (second)
`TCONT`
  CPU time for content removal(second)
`HT`
  Head term of the generated basis element
`INDEX`
  Pair of indices which corresponds to the reduced S-polynomial
`NB`
  Number of basis elements after removing redundancy
`NAB`
  Number of all the basis elements
`RP`
  Number of remaining pairs
`S`
  Sugar of the generated basis element
`M`
  Magnitude of the genrated basis element (shown if `ShowMag` is `on'.)

The summary of the informations shown after a Groebner basis computation is as follows. If a component shows timings and it contains two numbers, they are a pair of time for computation and time for garbage colection.

`UP`
  Time to manipulate the list of critical pairs
`SP`
  Time to compute S-polynomials over the rationals
`SPM`
  Time to compute S-polynomials over a finite field
`NF`
  Time to compute normal forms over the rationals
`NFM`
  Time to compute normal forms over a finite field
`ZNFM`
  Time for zero reductions in `NFM`
`PZ`
  Time to remove integer contets
`NP`
  Time to compute remainders for coefficients of polynomials with coeffieints in the rationals
`MP`
  Time to select pairs from which S-polynomials are computed
`RA`
  Time to interreduce the Groebner basis candidate
`MC`
  Time to check that each input polynomial is a member of the ideal generated by the Groebner basis candidate.
`GC`
  Time to check that the Groebner basis candidate is a Groebner basis
`T`
  Number of critical pairs generated
`B, M, F, D`
  Number of critical pairs removed by using each criterion
`ZR`
  Number of S-polynomials reduced to 0
`NZR`
  Number of S-polynomials reduced to non-zero results
`Max_mag`
  Maximal magnitude among all the generated polynomials

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