diff options
-rw-r--r-- | README.md | 16 | ||||
-rw-r--r-- | src/qm.c | 4 |
2 files changed, 19 insertions, 1 deletions
@@ -1,2 +1,18 @@ # Quine-McCluskey An implementation of the Quine-McCluskey algorithm to simpily a DNF written in C + +## How it works: +1. Parse the input (the sum of products) into a format we can use, nested structs +2. Create the simplification table of minterms +3. Merge minterms if possible, marking them if merged +4. Keep merging until we can't any more +5. Get what we couldn't merge, the 'Prime Implicants'- this is the output + +## Example +`./quineMcCluskey -C-B-A + -CB-A + C-B-A + CB-A + CBA` + +`-A + CB` + +(Alternative output format:) + +`A v (C ∧ B)` @@ -13,6 +13,8 @@ int main(int argc, char* argv[]) { } DNF startDNF = parseDNFStr(argv[1]); + printForm(&startDNF); + printForm2(&startDNF); SimplifiedTableItem simplifiedTable[startDNF.numTerms]; unsigned int simplifiedTableLength = startDNF.numTerms; setupMergeTable(simplifiedTable, &startDNF); @@ -209,4 +211,4 @@ void printForm2(const DNF* form) { } } printf("\n"); -}
\ No newline at end of file +} |