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

SW_Maker Class Reference

#include <sw_maker.H>

Inheritance diagram for SW_Maker:

Exponentiator< F_2 > List of all members.

Detailed Description

SW_Maker class: computes Stiefel-Whitney classes.

This is an Exponentiator<F_2> which knows:

These changes are implemented by modifying the create_regular_variables() method (which is virtual). So it is only required from the user to call start() (same as for any Exponentiator).

If a pointer to a chern ring has been provided, then 'chern_sw' will contain the homomorphism between this ring and the sw ring just created by SW_Maker. It is public.

Definition at line 33 of file sw_maker.H.

Public Member Functions

void start (RealRepresentationRing *thesource, GradedAlgebra< F_2 > *thetarget, GradedAlgebra< F_2 > *the_chern_ring=0)
 start() with a slightly different prototype
virtual void create_regular_variables (string prefix)
 new version, which takes the schur indices into account
void add_complex_relations ()
 translate relations between Chern classes into SW relations
AffineHomomorphism< F_2 > translate_homomorphism (const AffineHomomorphism< QQ > &r, SW_Maker &sw)
 turn a homomorphism of representation rings into a homomorphism between the exponential algebras

Public Attributes

GradedAlgebra< F_2 > * chern_ring
 a pointer to an algebra created by Chern_Maker
AbstractHomomorphism< F_2 > chern_sw
 the homomorphism from the Chern ring to the SW ring

Private Member Functions

string name_of_rep (const string &name_chern)
long index_of_chern_class (const string &name_chern)
F_2 comb (long n, long i)


Member Function Documentation

void SW_Maker::add_complex_relations  ) 
 

translate relations between Chern classes into SW relations

This is called at the end of the new create_regular_variables() when the pointer chern_ring is nonzero.

This method looks for the variables in *chern_ring and expects them to have names of the form c_i(r_j). They are all converted into the corresponding SW classes (using info in *source such as source->nameof() but also source->conjugates).

Then, the relations in *chern_ring are converted into SW relations and added to total_relations.

Definition at line 96 of file sw_maker.cpp.

References Polynomial< K >::alphabet, chern_ring, chern_sw, RealRepresentationRing::conjugates, Ideal< K >::generators, SimpleAlphabet::nameof(), AbstractHomomorphism< K >::of(), AffineAlgebra< K >::relations, RepresentationRing::schur_indices, AbstractHomomorphism< K >::set_image(), Exponentiator< F_2 >::var, SimpleAlphabet::variables_in_use(), and AffineAlgebra< K >::very_verbose.

Referenced by create_regular_variables().

void SW_Maker::create_regular_variables string  prefix  )  [virtual]
 

new version, which takes the schur indices into account

Some of the var(i,j) will be 0, depending on the Schur indices. Then the Steenrod operations are computed using Wu's formula. If chern_ring is not the zero pointer, then add_complex_relations() is called.

Reimplemented from Exponentiator< F_2 >.

Definition at line 16 of file sw_maker.cpp.

References add_complex_relations(), Polynomial< K >::alphabet, chern_ring, AugmentedAlgebra< K >::epsilon, SimpleAlphabet::nameof(), GradedAlgebra< K >::new_variable(), AffineAlgebra< K >::one(), Table< T >::resize(), RepresentationRing::schur_indices, Polynomial< K >::sets_to_zero(), UnstableAlgebra::steenrod, Exponentiator< F_2 >::var, SimpleAlphabet::variables_in_use(), and UnstableAlgebra::write_trivial_steenrod_operations().

void SW_Maker::start RealRepresentationRing thesource,
GradedAlgebra< F_2 > *  thetarget,
GradedAlgebra< F_2 > *  the_chern_ring = 0
 

start() with a slightly different prototype

Definition at line 7 of file sw_maker.cpp.

References chern_ring, and Exponentiator< K >::start().

AffineHomomorphism< F_2 > SW_Maker::translate_homomorphism const AffineHomomorphism< QQ > &  r,
SW_Maker sw
 

turn a homomorphism of representation rings into a homomorphism between the exponential algebras

This is the first attempt to make the Exponentiators functorial. It is a bit ad hoc at the moment, so we do not integrate this as a member of Exponentiator.

What this is doing: we have two Exponentiators, this and sw, and we assume that they have both done their job (cf start()). Given a homomorphism r between their respective representation rings (r for restriction, the most common type of homomorphism that we shall need), the method translates r into the corresponding homomorphism between the exponential algebras.

Limitation: we assume that r is of the form r(rep)= sum of reps with nonnegative, integer coefficents.

Note: the sw is not 'const' here, as we may need to compute more universal polynomials in the process. These will be stored.

Definition at line 225 of file sw_maker.cpp.

References Polynomial< K >::coeffs, AugmentedAlgebra< K >::epsilon, Exponentiator< K >::exp_classes_after_tensoring(), GradedAlgebra< K >::hom_part_of(), Polynomial< K >::is_zero(), AbstractHomomorphism< K >::of_generator(), AffineAlgebra< K >::one(), Exponentiator< K >::target, Exponentiator< F_2 >::var, and SimpleAlphabet::variables_in_use().


Member Data Documentation

GradedAlgebra<F_2>* SW_Maker::chern_ring
 

a pointer to an algebra created by Chern_Maker

Definition at line 44 of file sw_maker.H.

Referenced by add_complex_relations(), create_regular_variables(), and start().

AbstractHomomorphism<F_2> SW_Maker::chern_sw
 

the homomorphism from the Chern ring to the SW ring

Definition at line 46 of file sw_maker.H.

Referenced by add_complex_relations().


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