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

unstable.H

00001 #ifndef _UNSTABLE_H_
00002 #define _UNSTABLE_H_
00003 
00004 
00005 #include "algebras.H"
00006 #include <string>
00007 #include <sstream>
00008 #include <fstream>
00009 #include "my_gmp.H"
00010 #include "ftwo.H"
00011 using namespace std;
00012 
00014 
00020 class UnstableAlgebra : public GradedAlgebra<F_2> {
00021 private:
00022   //silly thing used by saturate_and_reduce(). See unstable.cpp.
00023   void insert(const Polynomial<F_2>& P, 
00024               const string& com, 
00025               list< Polynomial<F_2> >& thelist);
00026 
00027 public:
00029 
00039   list< string > comments;
00041   map< long, Tuple< Polynomial<F_2> > > steenrod;
00042   // as usual, we need to rewrite the following
00044   virtual void swap_variables_order(long i, long j, list< Polynomial<F_2> >& polys);
00045   virtual void swap_variables_order(long i, long j);
00046   virtual void kill_top_variable(const Polynomial<F_2>& replacement,
00047                                  list< Polynomial<F_2> >& polys);
00048   virtual void kill_top_variable(const Polynomial<F_2>& replacement);
00049   virtual void fix_alphabets();
00050   //new stuff///////////////////////////////////
00053 
00061   void write_trivial_steenrod_operations();
00063   Polynomial<F_2> Sq(long i, const Polynomial<F_2>& x) const;
00065   Polynomial<F_2> Q(long i, const Polynomial<F_2>& x) const;
00067 
00074   void display() const;  
00076 
00096   AbstractHomomorphism<F_2> saturate_and_reduce();
00098   bool is_saturated() const;
00100 
00104   bool has_closure_of(const AffineHomomorphism<F_2>& f) const;
00106   friend ostream& operator<<(ostream& os, const UnstableAlgebra& A);
00107   friend ofstream& operator<<(ofstream& file, UnstableAlgebra& A);
00108   friend void operator>>(ifstream& file, UnstableAlgebra& A);
00109 
00110 };
00111 
00112 
00113 
00114 #endif

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