Equation.h

Go to the documentation of this file.
00001 // Copyright (C) 2005 Alexander Ushakov
00002 // Contents: Definition of class Equation
00003 //
00004 // Principal Authors: Alexander Ushakov
00005 //
00006 // Revision History:
00007 //
00008 
00009 
00010 #ifndef _Equation_h__
00011 #define _Equation_h__
00012 
00013 
00014 #include "GraphType.h"
00015 #include "GraphConcept.h"
00016 #include "GraphConceptAlgorithms.h"
00017 using namespace Graphs;
00018 
00019 #include "Word.h"
00020 
00021 
00022 //---------------------------------------------------------------------------//
00023 //--------------------------------- Equation --------------------------------//
00024 //---------------------------------------------------------------------------//
00025 
00026 
00027 class Equation
00028 {
00029 
00031   //                                                     //
00032   //  Constructors:                                      //
00033   //                                                     //
00035   
00036  public:
00037 
00038   Equation( int nGen , int nVar , const Word& eq );
00039 
00040 
00042   //                                                     //
00043   //  Accessors:                                         //
00044   //                                                     //
00046 
00047  public:
00048 
00050   bool isGenerator( int g ) const;
00051 
00052 
00054   bool isVariable ( int g ) const;
00055 
00056 
00058   int getTheNumberOfGenerators( ) const { return theNumberOfGenerators; }
00059 
00060 
00062   int getTheNumberOfVariables( ) const { return theNumberOfVariables; }
00063 
00064 
00066   const Word& getTheEquation( ) const { return theEquation; }
00067 
00068   
00070   bool isQuadratic( ) const;
00071 
00072   
00074   bool trivialSolution( ) const;
00075   
00076   
00078 
00085   static Equation randomQuadraticEquation( int nGen , int nVar , int len );
00086 
00087 
00089   //                                                     //
00090   //  I/O:                                               //
00091   //                                                     //
00093 
00094  private:
00095   
00096   friend ostream& operator << ( ostream& os , const Equation& eq );
00097   
00099   //                                                     //
00100   //  Internal functions:                                //
00101   //                                                     //
00103 
00104  private:
00105   
00106   
00108   //                                                     //
00109   //  Data members:                                      //
00110   //                                                     //
00112 
00113  private:
00114 
00116   int theNumberOfGenerators;
00118   int theNumberOfVariables;
00120 
00126   Word theEquation;
00127 
00128 };
00129 
00130 
00131 #endif
00132 
 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