formula.h
Go to the documentation of this file.
00001 
00007 #ifndef _FORMULA_H
00008 #define _FORMULA_H_
00009 
00010 #include <vector>
00011 #include <string>
00012 #include <fstream>
00013 
00014 #include "clause.h"
00015 #include "variableset.h"
00016 
00017 #define CLAUSE_BUFFER_SIZE 10000
00018 
00019 namespace cnf {
00020 
00035 class Formula
00036 {
00037         private:
00044                 VariableSet * varSet;
00045 
00050                 std::vector<Clause> cnfs;
00051 
00057                 Clause bufferClause;
00058                 
00063                 std::ostream * output;
00064 
00065 
00066         public:
00081                 Formula(VariableSet*, std::ostream*, std::string);
00082 
00087                 ~Formula();
00088 
00093                 void newClause();
00094 
00104                 void addLit(unsigned int, bool, unsigned int, unsigned int);
00105 
00116                 void addLit(unsigned int, bool,
00117                             unsigned int, unsigned int, unsigned int);
00118 
00126                 void addLitCode(int);
00127 
00132                 void pushClause();
00133 
00138                 void flushCNF();
00139 };
00140 
00141 
00142 } // closing namespace
00143 
00144 #endif
 All Classes Namespaces Files Functions Variables Defines