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

GradedAlgebra< K > Class Template Reference

#include <gradedalgebras.H>

Inheritance diagram for GradedAlgebra< K >:

AffineAlgebra< K > SimpleAlphabet Alphabet List of all members.

Detailed Description

template<class K>
class GradedAlgebra< K >

GradedAlgebra class: an affine algebra with a grading.

All the methods are obvious extensions of those of Affinealgebra.

Definition at line 14 of file gradedalgebras.H.

Public Member Functions

Polynomial< K > new_variable (const string &name, long degree)
virtual void swap_variables_order (long i, long j, list< Polynomial< K > > &polys)
 changes the order of two variables
virtual void swap_variables_order (long i, long j)
virtual void kill_top_variable (const Polynomial< K > &replacement, list< Polynomial< K > > &polys)
 replaces the top variable by a polynomial in the others
virtual void kill_top_variable (const Polynomial< K > &replacement)
long hom_degree_of (const Polynomial< K > &x) const
 homogeneous degree of an element
bool is_homogeneous (const Polynomial< K > x) const
Polynomial< K > hom_part_of (const Polynomial< K > &x, long n) const
void add_relation (const Polynomial< K > &rel)
 adds a generator in the relations ideal. Checks if it is 0, not if it is redundant.
void split_and_sort_relations ()
 turns the relations into sorted, homogeneous relations.
void even_subalgebra (GradedAlgebra< K > &ans, AffineHomomorphism< K > &inclusion) const
 the subalgebra in even degrees
long top_degree () const
 gives a degree above which the algebra is zero
void list_monomials (long degree, Tuple< Polynomial< K > > &result) const
 gives a K-basis of a given homogenous part

Public Attributes

map< long, long > hom_degrees
 the homogeneous degrees

Friends

ostream & operator<< (ostream &os, const GradedAlgebra< K > &R)
ofstream & operator<< (ofstream &file, GradedAlgebra< K > &A)
 write to file
void operator>> (ifstream &file, GradedAlgebra< K > &A)


Member Function Documentation

template<class K>
void GradedAlgebra< K >::add_relation const Polynomial< K > &  rel  )  [inline]
 

adds a generator in the relations ideal. Checks if it is 0, not if it is redundant.

Reimplemented from AffineAlgebra< K >.

Definition at line 118 of file gradedalgebras.H.

Referenced by HomFinder::define_polynomial_variables(), HomFinder::extend(), HomFinder::extend_all(), HomFinder::init(), and HomFinder::test_steenrod().

template<class K>
void GradedAlgebra< K >::even_subalgebra GradedAlgebra< K > &  ans,
AffineHomomorphism< K > &  inclusion
const [inline]
 

the subalgebra in even degrees

This writes in 'ans' a polynomial algebra which maps onto the even-degree subalgebra of *this, via the homomorphism written in 'inclusion'. The user may or may not want to compute the kernel of 'inclusion', giving a presentation for the even-degree subalgebra.

Definition at line 193 of file gradedalgebras.H.

Referenced by MilnorAnalyzer::done().

template<class K>
long GradedAlgebra< K >::hom_degree_of const Polynomial< K > &  x  )  const [inline]
 

homogeneous degree of an element

Parameters:
x: a polynomial
Returns:
the homogeneous degree of the leading term of x

Definition at line 75 of file gradedalgebras.H.

Referenced by GradedAlgebra< F_2 >::add_relation(), DerivationAnalyzer::constant_subalgebra(), and GradedAlgebra< F_2 >::even_subalgebra().

template<class K>
virtual void GradedAlgebra< K >::kill_top_variable const Polynomial< K > &  replacement,
list< Polynomial< K > > &  polys
[inline, virtual]
 

replaces the top variable by a polynomial in the others

This modifies the list polys so its members take the changes into account.

Reimplemented from AffineAlgebra< K >.

Reimplemented in UnstableAlgebra.

Definition at line 53 of file gradedalgebras.H.

Referenced by Exponentiator< F_2 >::kill_extra_variables(), UnstableAlgebra::kill_top_variable(), and HomFinder::polynomial_test().

template<class K>
void GradedAlgebra< K >::list_monomials long  degree,
Tuple< Polynomial< K > > &  result
const [inline]
 

gives a K-basis of a given homogenous part

This writes in the Tuple 'result' a bunch of elements of the graded algebra which form a K-basis for the homogeneous part of degree 'degree'.

Careful: This will only work if a Grobner basis has been computed ! in fact, what this method really does is list all powerproducts in degree 'degree' and eliminate those which reduce to 0 under reduced_form().

Definition at line 291 of file gradedalgebras.H.

Referenced by HomFinder::define_polynomial_variables(), HomFinder::define_polynomial_variables_brutally(), HomFinder::init(), and GradedAlgebra< F_2 >::list_monomials().

template<class K>
void GradedAlgebra< K >::split_and_sort_relations  )  [inline]
 

turns the relations into sorted, homogeneous relations.

This splits the current relations into homogeneous parts, and organizes the resulting homogeneous relations so that they appear in 'relations' with their degrees nondecreasing.

Definition at line 141 of file gradedalgebras.H.

template<class K>
virtual void GradedAlgebra< K >::swap_variables_order long  i,
long  j,
list< Polynomial< K > > &  polys
[inline, virtual]
 

changes the order of two variables

This corrects all the relations generators so they take the change of order into account. Likewise all polynomials created with this before should be modified.

Parameters:
 polys, a list of polynomials to update.

Reimplemented from AffineAlgebra< K >.

Reimplemented in UnstableAlgebra.

Definition at line 32 of file gradedalgebras.H.

Referenced by MilnorAnalyzer::re_setup(), MilnorAnalyzer::setup_for_Sq1(), and UnstableAlgebra::swap_variables_order().

template<class K>
long GradedAlgebra< K >::top_degree  )  const [inline]
 

gives a degree above which the algebra is zero

Before using this, it is necessary to call is_finite_dimensional() (from AffineAlgebra<K>), otherwise this enters an infinite loop (and the result would make no sense of course). Also, a Grobner basis must have been computed.

Note: The result given is not sharp.

Definition at line 252 of file gradedalgebras.H.


Friends And Related Function Documentation

template<class K>
ofstream& operator<< ofstream &  file,
GradedAlgebra< K > &  A
[friend]
 

write to file

Definition at line 379 of file gradedalgebras.H.


Member Data Documentation

template<class K>
map<long, long> GradedAlgebra< K >::hom_degrees
 

the homogeneous degrees

Definition at line 18 of file gradedalgebras.H.

Referenced by HomFinder::branch(), HomFinder::define_polynomial_variables(), HomFinder::define_polynomial_variables_brutally(), HomFinder::extend(), HomFinder::extend_all(), HomFinder::init(), MilnorAnalyzer::re_setup(), DerivationAnalyzer::setup(), MilnorAnalyzer::setup_for_Sq1(), and HomFinder::weight().


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