#include <multigrobner.H>
We think of this as a submodule of a free module, over a polynomial ring, given by a set of generators. The methods are analogous to those of the Ideal class, indeed the code is almost a copy & paste.
Definition at line 128 of file multigrobner.H.
Public Member Functions | |
void | grobnerize_with_coefficients (Matrix< Polynomial< K > > &M) |
Buchberger's algorithm. | |
void | syzygy (Matrix< Polynomial< K > > &M) const |
computes generators for the module of syzygies | |
Public Attributes | |
list< multiPolynomial< K > > | generators |
a collection of polynomial which generate the ideal | |
Private Member Functions | |
void | insert (const multiPolynomial< K > &mP, const Matrix< Polynomial< K > > &coords) |
long | simplify () |
gets rid of elements in the grobner basis, so it becomes minimal | |
Private Attributes | |
list< Matrix< Polynomial< K > > > | coeffs |
used by grobnerize_with_coefficients |
|
Buchberger's algorithm. This adds elements in the family of generators so that it becomes a grobner basis. This is well-suited for the computation of syzygies: a matrix T is filled such that G=T.F, where F resp G, is the old, resp the new collection of generators, viewed as matrices (each row corresponding to a generator); and moreover the fact that G "contains" F makes the computation of syzygies straightforward.
Definition at line 224 of file multigrobner.H. References Polynomial< K >::alphabet, Matrix< T >::get_data_from_matrix_list(), multiPolynomial< K >::is_zero(), and Table< T >::resize(). Referenced by DerivationAnalyzer::constant_subalgebra(). |
|
gets rid of elements in the grobner basis, so it becomes minimal
Definition at line 162 of file multigrobner.H. References Table< T >::ncols(). |
|
computes generators for the module of syzygies This computes a matrix M whose rows are generators for the module of syzygies of the generators defining this multiideal. These will be highly redundant (typically some rows are even 0). Important: It is assumed that the generators of the ideal are in grobner form. If they are not, luckily, it is still easy to compute the syzygies: call grobnerize_with_coefficients and obtain in this way the matrix expressing the new generators -- call it T. Then compute M using syzygy(). The syzygies for the original generators are given by M*T. Definition at line 376 of file multigrobner.H. References Matrix< T >::get_data_from_matrix_list(). Referenced by DerivationAnalyzer::constant_subalgebra(). |
|
used by grobnerize_with_coefficients This holds the coefficients of the generators which are being computed by grobnerize_with_coefficients; they allow you to express the new generators in terms of the "old" ones, that is, the generators which existed before you called grobnerize_with_coefficients. If there were n of them,then each matrix in this list has 1 line and n columns. It starts as "the identity matrix". Definition at line 140 of file multigrobner.H. |
|
a collection of polynomial which generate the ideal
Definition at line 206 of file multigrobner.H. Referenced by DerivationAnalyzer::constant_subalgebra(). |