00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013
00014
00015 #ifndef __IMPLICANTEXPANDER__
00016 #define __IMPLICANTEXPANDER__
00017
00018 #include <cstdlib>
00019 #include <list>
00020
00021 namespace Mers {
00022 namespace Generators {
00023 namespace BFIG {
00024
00025 class BFIGAssignment;
00026 class BFIGImplicant;
00027 class BFIGVariable;
00028
00035 class BFIGImplicantExpander
00036 {
00037 public:
00038
00039
00040
00041
00042 BFIGImplicantExpander();
00043
00044 BFIGImplicantExpander(std::list<BFIGVariable *> const & variables);
00045
00046
00047
00048
00049
00050
00051 BFIGImplicant * expandImplicant(BFIGImplicant const & partialImplicant) const;
00052 void expandImplicant(BFIGImplicant * partialImplicant) const;
00053
00054 private:
00055
00056
00057
00058
00059 std::list<BFIGVariable *> variableSet;
00060
00061
00062
00063
00064 };
00065 }
00066 }
00067 }
00068
00069 #endif //ndef __IMPLICANTEXPANDER__
00070