
3.4 Implemented algorithms
The basic algorithm in SINGULAR is a general standard basis algorithm for
any monomial ordering which is compatible with the natural semigroup
structure of the exponents. This includes wellorderings
(Buchberger algorithm to compute a Groebner basis)
and tangent cone orderings (Mora algorithm) as special cases.
Nonetheless, there are a lot of other important algorithms:

Algorithms to compute the standard operations on ideals and modules:
intersection, ideal quotient, elimination, etc.

Different Syzygy algorithms and algorithms to compute free resolutions
of modules.

Combinatorial algorithms to compute dimensions, Hilbert series,
multiplicities, etc.

Algorithms for univariate and multivariate polynomial factorization,
resultant and gcd computations.
Commands to compute standard bases
facstd
 facstd
computes a list of Groebner bases via the Factorizing Groebner Basis
Algorithm, i.e., their intersection has the same radical as the original ideal. It need not
be a Groebner basis of the given ideal.
The intersection of the zerosets is the zeroset of the given ideal.
fglm
 fglm
computes a Groebner basis provided that a reduced Groebner basis
w.r.t. another ordering is given.
Implements the socalled FGLM (Faugere, Gianni, Lazard, Mora) algorithm.
The given ideal must be zerodimensional.
groebner
 groebner
computes a standard resp. Groebner basis using a heuristically chosen
method.
This is the preferred method to compute a standard resp. Groebner
bases.
mstd
 mstd
computes a standard basis and a minimal set of generators.
std
 std
computes a standard resp. Groebner basis.
stdfglm
 stdfglm
computes a Groebner basis in a ring with a "difficult" ordering
(e.g., lexicographical) via std w.r.t. a "simple" ordering and
fglm .
The given ideal must be zerodimensional.
stdhilb
 stdhilb
computes a Groebner basis in a ring with a "difficult" ordering
(e.g., lexicographical) via std w.r.t. a "simple" ordering
and a std computation guided by the Hilbert series.
Further processing of standard bases
The next commands require the input to be a standard basis.
degree
 degree
computes the (Krull) dimension, codimension and the multiplicity.
The result is only displayed on the screen.
dim
 dim
computes the dimension of the ideal resp. module.
highcorner
 highcorner
computes the smallest monomial not contained in the ideal resp. module.
The ideal resp. module has to be finite dimensional as a vector space
over the ground field.
hilb
 hilb
computes the first, and resp. or, second Hilbert series of an ideal
resp. module.
kbase
 kbase
computes a vector space basis (consisting of monomials) of
the quotient of a ring by an ideal resp. of a free module by a
submodule.
The ideal resp. module has to be finite dimensional as a vector space
over the ground field and has to be represented by a standard basis w.r.t.
the ring ordering.
mult
 mult
computes the degree of the monomial ideal resp. module generated by
the leading monomials of the input.
reduce
 reduce
reduces a polynomial, vector, ideal or module to its normal form with
respect to an ideal or module represented by a standard basis.
vdim
 vdim
computes the vector space dimension of a ring (resp. free module)
modulo an ideal (resp. module).
Commands to compute resolutions
res
 res
computes a free resolution of an ideal or module using a heuristically
chosen method.
This is the preferred method to compute free resolutions of ideals or
modules.
lres
 lres
computes a free resolution of an ideal or module with LaScala's
method. The input needs to be homogeneous.
mres
 mres
computes a minimal free resolution of an ideal or module with the Syzygy
method.
sres
 sres
computes a free resolution of an ideal or module with Schreyer's
method. The input has to be a standard basis.
nres
 nres
computes a free resolution of an ideal or module with the standard basis
method.
syz
 syz
computes the first Syzygy (i.e., the module of relations of the
given generators).
Further processing of resolutions
betti
 betti
computes the graded Betti numbers of a module from a free resolution.
minres
 minres
minimizes a free resolution of an ideal or module.
regularity
 regularity
computes the regularity of a homogeneous ideal resp. module from a given
minimal free resolution.
Processing of polynomials
char_series
 char_series
computes characteristic sets of polynomial ideals.
extgcd
 extgcd
computes the extended gcd of two polynomials.
This is implemented as extended Euclidean Algorithm, and applicable for univariate
polynomials only.
factorize
 factorize
computes factorization of univariate and multivariate polynomials into
irreducible factors.
The most basic algorithm is univariate factorization in prime
characteristic. The CantorZassenhaus Algorithm is used in this case.
For characteristic 0, a univariate Hensellifting is done to lift from
prime characteristic to characteristic 0. For multivariate
factorization in any characteristic, the problem is reduced to the
univariate case first, then a multivariate Hensellifting is used to
lift the univariate factorization.
Factorization of polynomials over algebraic extensions is provided by
factoring the norm for univariate polynomials f (the gcd of f and the
factors of the norm is a factorization of f) resp. by the extended Zassenhaus
algorithm for multivariate polynomials.
gcd
 gcd
computes greatest common divisors of univariate and multivariate polynomials.
In the univariate case NTL is used.
For prime characteristic, a subresultant gcd is used. In characteristic 0,
the EZGCD is used, except for a special case where a modular algorithm is used.
resultant
 resultant
computes the resultant of two univariate polynomials using the subresultant
algorithm.
Multivariate polynomials are considered as univariate polynomials in the
main variable (which has to be specified by the user).
vandermonde
 vandermonde
interpolates a polynomial from its values at several points
Matrix computations
bareiss
 bareiss
implements sparse GaussBareiss method for elimination (matrix
triangularization) in arbitrary integral domains.
det
 det
computes the determinant of a square matrix.
For matrices with integer entries a modular algorithm is used. For
other domains the GaussBareiss method is used.
minor
 minor
computes all minors (=subdeterminants) of a given size for a matrix.
Numeric computations
laguerre
 laguerre
computes all (complex) roots of a univariate polynomial
uressolve
 uressolve
finds all roots of a 0dimensional ideal with multivariate resultants
Controlling computations
option
 option
allows setting of options for manipulating the behaviour of computations
(such as reduction strategies) and for showing protocol information indicating
the progress of a computation.
