\section{REFERENCES}
This section contains more formal, but more complets
desription of the avilable procedures,
variables and flags.  Some of them were not mentioned above, so
the user is recommended to look through the this section even
if part of the information looks not so clear from the first
reading.

      \subsection { SUSTAINED OPERATING MODE ALTERNATIVES }

 In the right column, appropriate procedures or flags are named. The
procedures are described (in alphabetical orders) after the overview.

{\center Polynomial ring set-up:

  \begin{tabular}{|l|c|l|}
  \hline
  Modes & Default & Procedures\\
  \hline
          Commutative DEG-REVLEX &+&       COMMIFY(),REVLEXIFY()  \\
        Commutative DEG-LEX & &            COMMIFY(),DEGLEXIFY()  \\
        Non-commutative & &                        NONCOMMIFY()\\
        \hline
  \end{tabular}

 Coefficient arithmetic:

\begin{tabular}{|l|c|l|c|}
  \hline
  Modes & Df & Procedures& Flags ON\\
  \hline      \hline
         Characteristic 0,  & + & SETMODULUS(0) & \\
        arbitrary integers & & &\\
        \hline
        Characteristic 0,  & &    SETMODULUS(0)  &   NOBIGNUMS\\
        only inums & & &\\
        \hline
             Characteristic 2 &  &                       SETMODULUS(2)&\\
        \hline
        Odd characteristic & &  SETMODULUS(pr)  &\\
         ordinary inum  & & &           \\
        \hline
        Odd characteristic & &  SETMODULUS(pr) &\\
        ordinary bignum & & &\\
        \hline
        Odd characteristic & & SETMODULUS(pr) &  MODLOGARITHMS  \\
         logarithm table & & &\\
         inum arithmetic & & & \\
         \hline
        Arbitrary Reduce & &        SETREDUCES-&\\
Standard Forms & &FCOEFFS() &\\         only available & & &\\
 under REDUCE) & & &\\
 \hline
 \end{tabular}


 Fundamental strategy:



\begin{tabular}{|l|c|l|c|}
  \hline
  Strategy & Df & Procedures and Flags ON\\
  \hline      \hline
        Ordinary (Buchberger, Bergman) & + &  IMMEDIATEFULLREDUCTION\\
            with immediate              & & \\
            full   autoreduction       & & \\
  \hline
        Ordinary (Buchberger, Bergman) &  &  \\
            without immediate              & & \\
            full   autoreduction       & & \\
  \hline
        Staggered with  & &                Various.\\
         substance (SAWS).   & & \\
 \hline
 \end{tabular}


 Minor mode modifications:


\begin{tabular}{|l|c|l|c|}
  \hline
  Mode & Df & Procedures \\
  \hline      \hline
        Densely  & + &
                                                DENSECONTENTS(), \\
\hline
 sparsely performed & &         SPARSECONTENTS()\\
 factoring out      & & \\
  of contents       & & \\
   \hline
 \end{tabular}

             
        Ordinary or Hilbert series limit interruption strategy:

\begin{tabular}{|l|c|l|c|}
  \hline
  Mode & Df & Procedures \\
        \hline
  Ordinary & + &              ORDNGBESTRATEGY()\\
  Hilbert series & &               MINHILBLIMITSTRATEGY()\\
                \hline
 \end{tabular}

 (or use SETINTERRUPTSTRATEGY)


Output mode:

\begin{tabular}{|l|c|l|c|}
  \hline
  Mode & Df & ALGOUTMODE set \\
  \hline      \hline
        Lisp form     & + &                 LISP\\
        Ordinary algebraic form & &               MAPLE \\
        Macaulay-like  form & &            MACAULAY\\
               \hline
 \end{tabular}

}%end of \center

    (The algebraic modes are depending on output variables being set.
     Variable settings act as mode settings. See above!)


 In general, modes should not be changed while a set up is in progress.
Therefore, mode changing procedure calls are only recommended early in
a BERGMAN run, or (almost) immediately after a call to the procedure
CLEARALL. If the latter does not work well, restart BERGMAN and try the
former.

 The SAWS mode is achieved by calling SAWS alternative procedures (such
as STAGSIMPLE instead of SIMPLE).

 \subsection {The mode changing procedures}


 Monomial handling and comparisons:
 \begin{description}
\item [(COMMIFY) : EXPR]

\item [(NONCOMMIFY) : EXPR]

Turns on commutative/non-commutative mode. (The latter is automatically
performed by NCPBHGROEBNER.) (The procedures inter alia changes some
flags, which should NOT be changed directly.)

\item [(DEGLEXIFY) : EXPR]

Should only be used in the commutative mode. Sets the monoid order to
the TOTAL DEGREE -- LEXICOGRAPHICAL one. (In LISP form input, the
variable in first position is first used in order comparisons. In MAPLE
form input, the first "setinvars" listed variable is first used.)

\item [(REVLEXIFY) : EXPR]

Should only be used in the commutative mode. Sets the monoid order to
the TOTAL DEGREE -- REVERSE LEXICOGRAPHICAL one. (In LISP form input, the
variable in last position is first used in order comparisons. In MAPLE
form input, the last "setinvars" listed variable is first used.)
 \end{description}


 Coefficient domain and handling:

\begin{description}

\item [(SETMODULUS pr) : EXPR]

pr should be a prime, 0, or NIL. (NIL is interpreted as 0.) The new
coefficient field is set to the prime field of characteristic pr.
For  pr > 2 , some recompilations (which may take several seconds) are
performed. If furthermore the flag MODLOGARITHMS is ON, a file with a
certain kind of "modular logarithm tables" is sought for. The (full)
name of the file is supposed to be a preamble followed by the number
pr (in decimal notation). The preamble is the value of (the expansion
of) the variable P!r!i!m!eF!i!l!eP!r!eA!m!b!l!e (which in severe need
may be reset by means of SETQ). If the file is not found, a new one
is created; but if you don't have write permission on the relevant
directory, you may get into troubles. (The creation of the table file
also requires some time, depending on the size of pr.)

\item [(SETREDUCESFCOEFFS) : EXPR]

(Only in BERGMAN-under-reduce.)
The coefficients are set to be Reduce 'standard forms'. (Any previous
SETMODULUS call is cancelled). In this mode, coefficient arithmetic
is performed by ordinary Reduce standard form procedures, whence any
Reduce flags or standard forms simplifications are in force. In this
way very general domains may be set up.

\item [(DENSECONTENTS) : EXPR]

\item [(SPARSECONTENTS) : EXPR]

In the (integer of characteristic 0) and the (Reduce standard form)
coefficient major modes, the 'coefficient domain' does not coincide
with the 'base field'. Then the polynomials under reduction and the
preliminary Gr\"{o}bner basis elements will in general not be monic. As
a consequence, we now and then get non-unit contents of polynomials
under reduction (i.e., non-trivial greatest common divisors of all
coefficients). There are different possible strategies for how often
such contents should be calculated and factored out. The BERGMAN
default is 'densely', i.e., more or less at each reduction steps.
A 'sparsely' variant is also available, where we postpone this until
we have normal forms. DENSECONTENTS/SPARSECONTENTS switches between
them.

(COMMENT: In the M\"{o}ller et al. Reduce GROEBNER package, an
intermediate strategy of some interest has been tested: Factor out
the content once for each (say) tenth step.)
\end{description}


 Strategy modes:

\begin{description}

\item [(SETINTERRUPTSTRATEGY interruption-strategy-name) : FEXPR]

interruption-strategy-name should be one of ORDINARY, NONE, NIL, or
MINHILBLIMITS. The first three cause the ordinary (default) strategy,
with no interruptions. The argument MINHILBLIMITS turns on the minimal
limit interruption strategy submode. In this, at any new current degree
cDeg the value v of (GETHSERIESMINIMUM cDeg) is investigated.

If v is NIL, no interruption is made at this degree.

If v is SKIPCDEG, the degree is skipped but calculations continue for
higher degrees.

If v is T, all further Gr\"{o}bner basis calculations are skipped.

If v is an integer, then this is interpreted as the minimal possible
Hilbert function value of cDeg for the quotient (i.e., residue class)
ring. Calculations at this degree are interrupted as soon as the
found preliminary Gr\"{o}bner basis elements are enough to make the
corresponding monomial ideal quotient ring not to have a higher
Hilbert series value of cDeg.

(The check is performed by FixNcDeg, whence by defining CUSTNEWCDEGFIX
and turning on CUSTSTRATEGY you could modify the action; see this flag.)

\item [(ORDNGBESTRATEGY) : EXPR]

\item [(MINHILBLIMITSTRATEGY) : EXPR]

have the same effects as (SETINTERRUPTSTRATEGY ORDINARY) and
(SETINTERRUPTSTRATEGY MINHILBLIMITS), respectively

\item [(GETINTERRUPTSTRATEGY) : EXPR]

returns the present interruption strategy (ORDINARY or MINHILBLIMITS).

 The use of the flags NOBIGNUMS, MODLOGARITHMS, and
IMMEDIATEFULLREDUCTION is explained in the User Available Flags list.
\end{description}
