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