QuadEquatTransformationGraph.h

Go to the documentation of this file.
00001 // Copyright (C) 2005 Alexander Ushakov
00002 // Contents: Definition of class QuadEquationTranformationGraph
00003 //
00004 // Principal Authors: Alexander Ushakov
00005 //
00006 // Revision History:
00007 //
00008 
00009 
00010 #ifndef _QuadEquationTranformationGraph_h_
00011 #define _QuadEquationTranformationGraph_h_
00012 
00013 
00014 #include "Equation.h"
00015 
00016 
00017 //---------------------------------------------------------------------------//
00018 //---------------------- QuadEquationTranformationGraph ---------------------//
00019 //---------------------------------------------------------------------------//
00020 
00021 
00022 class QuadEquationTranformationGraph
00023 {
00025   //                                                     //
00026   //  Constructors:                                      //
00027   //                                                     //
00029   
00030  public:
00031   
00032   QuadEquationTranformationGraph( const Equation& eq );
00033   
00034   
00036   //                                                     //
00037   //  Accessors:                                         //
00038   //                                                     //
00040 
00041  public:
00042 
00043   void extend( );
00044   
00045 
00047   const IntLabeledGraph& getGraph( ) const;
00048 
00049   
00051   bool isDone( ) const;
00052 
00053 
00055   bool solutionFound( ) const;
00056   
00058   //                                                     //
00059   //  I/O:                                               //
00060   //                                                     //
00062 
00063  private:
00064 
00065   
00067   //                                                     //
00068   //  Internal functions:                                //
00069   //                                                     //
00071 
00072  private:
00073   
00075   set< Word > getNeighbours( const Word& eq );
00076   
00077   
00079   Word applyAdjointTransformation( const Word& eq , int x , const Word& im );
00080 
00081   
00083   bool isTrivialSolution( const Word& e ) const;
00084   
00085   
00087   //                                                     //
00088   //  Data members:                                      //
00089   //                                                     //
00091 
00092  private:
00093   
00095   const Equation theEquation;
00096   
00097   
00099 
00104   IntLabeledGraph theGraph;
00105 
00106   
00108   map< Word , int > processedEquations;
00109   
00110   
00112   map< Word , int > equationsInProcess;
00113 
00114 
00116   bool hasSolution;
00117   
00118 };
00119 
00120 
00121 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Mon Sep 26 18:43:45 2011 for CRyptography And Groups (CRAG) by  doxygen 1.6.1