#include <grobner.H>
This represents an ideal given by generators in a polynomial ring. essentially the one thing that this object can do is to produce a grobner basis. In conjunction with the algebra class, which contains an ideal, one can do natural things such as check if a polynomial is in the ideal or not, etc.
Definition at line 122 of file grobner.H.
Public Member Functions | |
void | grobnerize () |
Buchberger's algorithm. | |
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 | |
void | minimalize () |
gets rid of elements in the grobner basis, so it becomes minimal | |
void | reduce () |
turns a minimal grobner basis into a reduced + minimal grobner basis | |
bool | variable_shows_up (long i) const |
checks if a variable shows up among the ideal generators | |
Public Attributes | |
list< Polynomial< K > > | generators |
a collection of polynomial which generate the ideal | |
Private Member Functions | |
void | filter_B (Polynomial< K > *ptr) |
void | reduce_all () |
void | populate_B () |
void | new_basis () |
Private Attributes | |
list< Polynomial< K > > | G |
list< Polynomial< K > > | R |
list< Polynomial< K > > | P |
list< pair< Polynomial< K > *, Polynomial< K > * > > | B |
Friends | |
ostream & | operator<< (ostream &os, const Ideal< K > &J) |
|
Buchberger's algorithm. This is Buchberger's algorithm, which finds a grobner basis. The basis is automatically reduced (up to multiplication by a scalar).
Definition at line 255 of file grobner.H. Referenced by AffineAlgebra< F_2 >::variable_redundant(). |
|
Buchberger's algorithm. This adds elements in the family of generators so that it becomes a grobner basis. It is more simple than grobenerize(), and also not as good: the computation is more dependent on initial conditions (the complexity sometimes explodes!), and the result is not reduced (which is much less important). The good thing is that 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 column vectors; and moreover the fact that G "contains" F makes the computation of syzygies straightforward.
|
|
gets rid of elements in the grobner basis, so it becomes minimal
|
|
turns a minimal grobner basis into a reduced + minimal grobner basis
|
|
computes generators for the module of syzygies This computes a matrix M whose rows are generators for the module of syzygies of the polynomials defining this ideal. 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. |
|
checks if a variable shows up among the ideal generators
Definition at line 515 of file grobner.H. Referenced by HomFinder::init(), and HomFinder::polvars_are_involved_in(). |
|
a collection of polynomial which generate the ideal
Definition at line 244 of file grobner.H. Referenced by SW_Maker::add_complex_relations(), Exponentiator< F_2 >::clean_up_equations(), DerivationAnalyzer::constant_subalgebra(), UnstableAlgebra::display(), AffineHomomorphism< F_2 >::factors_through(), HomFinder::init(), UnstableAlgebra::is_saturated(), RepresentationRing::read_from_GAP_file(), UnstableAlgebra::saturate_and_reduce(), and AffineAlgebra< F_2 >::variable_redundant(). |