|
B.1 Representation of mathematical objectsSINGULAR distinguishes between objects which do not belong to a ring and those which belong to a specific ring (see Rings and orderings). We comment only on the latter ones. Internally all ring-dependent objects are polynomials or structures built from polynomials (and some additional information). Note that SINGULAR stores (and hence prints) a polynomial automatically w.r.t. the monomial ordering. The definition of ideals and matrices, respectively, is straight forward: The user gives a list of polynomials which generate the ideal, resp. which are the entries of the matrix. (The number of rows and columns need to be provided when creating the matrix.)
A vector in SINGULAR is always an element of a free module over the
basering. It is given as a list of polynomials in one of the following
formats
522#522 or
523#523, where 524#524denotes the i-th canonical generator of a free module (with 1 at index i and
0 everywhere else).
Both forms are equivalent. A vector is internally represented in
the second form with the
524#524being "special" ring variables, ordered accordingly to the monomial ordering.
Therefore, the form
522#522serves as output only if the monomial ordering gives priority to the
component, i.e., is of the form A vector 525#525should always be considered as a column vector in a free module of rank equal to nrows(331#331)where nrows(331#331)is equal to the maximal index 299#299such that 526#526.This is due to the fact, that internally 331#331is a polynomial in a sparse representation, i.e., 527#527is not stored if 528#528(for reasons of efficiency), hence the last 0-entries of 331#331are lost. Only more complex structures are able to keep the rank. A module 13#13in SINGULAR is given by a list of vectors 529#529which generate the module as a submodule of the free module of rank equal to nrows(13#13)which is the maximum of nrows(530#530).
If one wants to create a module with a larger rank than given by its
generators, one has to use the command By the above remarks it might appear that SINGULAR is only able to handle submodules of a free module. However, this is not true. SINGULAR can compute with any finitely generated module over the basering 53#53.Such a module, say 418#418,is not represented by its generators but by its (generators and) relations. This means that 531#531 where 17#17is the number of generators of 418#418 and 532#532is the module of relations. In other words, defining a module 13#13as a submodule of a free module 90#90can also be considered as the definition of 531#531. Note that most functions, when applied to a module 13#13,really deal with 13#13.However, there are some functions which deal with 531#531 instead of 13#13.
For example,
The function
The numbering in It is possible to compute in any field which is a valid ground field in SINGULAR. For doing so, one has to define a ring with the desired ground field and at least one variable. The elements of the field are of type number, but may also be considered as polynomials (of degree 0). Large computations should be faster if the elements of the field are defined as numbers.
The above remarks do also apply to quotient rings. Polynomial data are
stored internally in the same manner, the only difference is that this
polynomial representation is in general not unique. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |