Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

Ideal< K > Class Template Reference

#include <grobner.H>

List of all members.


Detailed Description

template<class K>
class Ideal< K >

Ideal class.

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)


Member Function Documentation

template<class K>
void Ideal< K >::grobnerize  )  [inline]
 

Buchberger's algorithm.

This is Buchberger's algorithm, which finds a grobner basis. The basis is automatically reduced (up to multiplication by a scalar).

Todo:
give a reference to the exact version of the algorithm used.

fix the "up to a scalar" thing. In the meanwhile, it is possible to call minimalize().

Definition at line 255 of file grobner.H.

Referenced by AffineAlgebra< F_2 >::variable_redundant().

template<class K>
void Ideal< K >::grobnerize_with_coefficients Matrix< Polynomial< K > > &  M  )  [inline]
 

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.

See also:
syzygy()

Definition at line 328 of file grobner.H.

template<class K>
void Ideal< K >::minimalize  )  [inline]
 

gets rid of elements in the grobner basis, so it becomes minimal

Definition at line 470 of file grobner.H.

template<class K>
void Ideal< K >::reduce  )  [inline]
 

turns a minimal grobner basis into a reduced + minimal grobner basis

Definition at line 502 of file grobner.H.

template<class K>
void Ideal< K >::syzygy Matrix< Polynomial< K > > &  M  )  const [inline]
 

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.

Definition at line 444 of file grobner.H.

template<class K>
bool Ideal< K >::variable_shows_up long  i  )  const [inline]
 

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().


Member Data Documentation

template<class K>
list< Polynomial<K> > Ideal< K >::generators
 

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().


The documentation for this class was generated from the following file:
Generated on Wed Jun 18 17:22:45 2008 for Pierre Guillot by  doxygen 1.3.9.1