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

sw_maker.H

00001 #ifndef _SW_MAKER_H_
00002 #define _SW_MAKER_H_
00003 
00004 #include "exp_classes.H"
00005 #include "ftwo.H"
00006 #include "my_gmp.H"
00007 #include "repring.H"
00008 #include "algebras.H"
00009 using namespace std;
00010 
00012 
00033 class SW_Maker : public Exponentiator<F_2> {
00034 private:
00035   //silly thing to extract "xx" from "toto(xx)"
00036   string name_of_rep(const string& name_chern);
00037   //silly thing to extract i from "toto_i(xx)"
00038   long index_of_chern_class(const string& name_chern);
00039   // this returns n! / i!(n-i)! mod 2, even if n < 0.
00040   F_2 comb(long n, long i);//used in Wu's formula !
00041 
00042 public:
00044   GradedAlgebra<F_2> *chern_ring;
00046   AbstractHomomorphism<F_2> chern_sw;
00048   void start(RealRepresentationRing *thesource, 
00049              GradedAlgebra<F_2> *thetarget,
00050              GradedAlgebra<F_2> *the_chern_ring=0);
00052 
00059   virtual void create_regular_variables(string prefix);
00061 
00071   void add_complex_relations();
00073 
00088   AffineHomomorphism<F_2> translate_homomorphism(const AffineHomomorphism<QQ>& r,
00089                                                  SW_Maker& sw);
00090 };
00091 
00092 
00093 
00094 #endif
00095 
00096 

Generated on Wed Jun 18 17:22:41 2008 for Pierre Guillot by  doxygen 1.3.9.1