|  |  3.3 Rings and orderings 
All non-trivial algorithms in SINGULAR require the prior definition of
a ring. Such a ring can be
 
 
a polynomial ring over a field,
a polynomial ring over a ring
a localization of 1.
a quotient ring by an ideal of 1. or 2.,
a tensor product of 1. or 2.
 
Except for quotient rings, all of these rings are realized by choosing a
coefficient field, ring variables, and an appropriate global or local
monomial ordering on the ring variables.  See  Term orderings,
 Mathematical background.
 
The coefficient field of the rings may be
 
 
the field of rational numbers 
 ( QQ),
finite fields  ,  a prime  ,
finite fields 
 with  elements,  a prime,  ,
transcendental extension of 
 or  ,
simple algebraic extension of 
 or  ,
the field of real numbers represented by floating point
numbers of a user defined precision,
the field of complex numbers represented by (pairs of) floating point
numbers of a user defined precision,
the ring of integers (ZZ),
finite rings 
 with  . 
In case of coefficient rings, which are not fields, only the following functions
are guaranteed to work:
 
 
- basic polynomial arithmetic, i.e. addition, multiplication, division, exponentiation
- std, i.e. computing standard bases (and related: syz, etc.)
- interred
- reduce
 
Throughout this manual, the current active ring in SINGULAR is
called basering.  The reserved name baseringin SINGULAR is
an alias for the current active ring.  The basering can be set by
declaring a new ring as described in the following subsections or by using
the commandssetringandkeepring. See  keepring,  setring. 
Objects of ring dependent types are local to a ring. To access them
after a change of the basering they have to be mapped using mapor by
the functionsimaporfetch.  See  Objects,  fetch,
 imap,  map. 
All changes of the basering in a procedure are local to this procedure
unless a keepringcommand is used as the last statement of the
procedure.  See  Procedures,  keepring. 
 
 |