From b0d5501f1f23aa46a217497ed899ec51aa571f1f Mon Sep 17 00:00:00 2001 From: jwansek <eddie.atten.ea29@gmail.com> Date: Sat, 28 Nov 2020 16:19:19 +0000 Subject: began work on merging terms in turn --- src/qm.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/qm.h (limited to 'src/qm.h') diff --git a/src/qm.h b/src/qm.h new file mode 100644 index 0000000..2b001bb --- /dev/null +++ b/src/qm.h @@ -0,0 +1,39 @@ +#ifndef QM_C +#define QM_C + +typedef struct { + char var; + bool not_; +} Variable; + +typedef struct { + unsigned int numVars; + Variable vars[26]; +} DNFTerm; + +typedef struct { + unsigned int numTerms; + DNFTerm terms[100]; + char notChar; +} DNF; + +typedef struct { + DNFTerm term; + unsigned int simplifiedIndexes[100]; + unsigned int numIndexes; +} SimplifiedTableItem; + +unsigned int strcnt(const char* str, const char cnt); +void setupMergeTable(SimplifiedTableItem simplifiedTable[], DNF* dnf); +void mergeTermsInTurn(SimplifiedTableItem simplifiedTable[], unsigned int* length); +bool canMergeTerms(const DNFTerm* term1, const DNFTerm* term2); +DNFTerm mergeTerms(const DNFTerm* term1, const DNFTerm* term2); +bool termInTable(const SimplifiedTableItem simplifiedTable[], const unsigned int* length, const DNFTerm* term); +bool termsAreEqual(const DNFTerm* term1, const DNFTerm* term2); +DNF parseDNFStr(const char* inpStr); +DNFTerm parseDNFTerm(const char* termStr, const char notChar, const int relIndex); +void printDNFTerm(const DNFTerm* term); +void printForm(const DNF* form); +void printForm2(const DNF* form); + +#endif \ No newline at end of file -- cgit v1.2.3