@helander/quine-mccluskey-js

1.0.0 • Public • Published

quine-mccluskey-js

Boolean logic optimizer

Copied from existing npm. The package.json in that npm has an incomplete "main" property. This component fixes this.

Original README content follows:

QM.js

A NodeJS project for simplifying logical expressions using the Quine-McCluskey Algorithm

How to Use

There are 2 different ways to get a simplified logical expression:

  • Minterm method
  • Maxterm method

Both methods will get you the same function but they differ by how they are connected together

  • A' + B' (Minterm method) is the exact same as AB (Maxterm method)

Note, however, that when you actually receive the simplified expressions, they will not be in boolean algebra.

For example, the above expressions would look like NOT A OR NOT B, A AND B. This is done to give you freedom to implement it as you see fit by simply replacing NOT with !, for example.

Minterm Method

f = new QuineMcCluskey("ABC", [4, 5, 6, 7]);
console.log(f.getFunction()); // --> A

g = new QuineMcCluskey("ABC", [3, 4, 5, 6, 7]);
console.log(g.getFunction()); // --> A + B*C

Maxterm Method

f = new QuineMcCluskey("ABC", [0, 1, 2, 3], [], true);
console.log(f.getFunction()); // --> A'

g = new QuineMcCluskey("ABC", [0, 1, 2], [], true);
console.log(g.getFunction()); // --> (A'+B')*(A'+C')

Note that the parameters for QuineMcCluskey are QuineMcCluskey(variables, values, dontCares = [], isMaxterm = false); Also, when using the maxterm method, do not forget to invert the values ([0, 1, 2, 3] becomes [4, 5, 6, 7]) or else you will get an incorrect simplified expression.

Using Don't Cares

f = new QuineMcCluskey("ABC", [0, 1], [4, 5, 6, 7]);
console.log(f.getFunction()); // --> B'

g = new QuineMcCluskey("ABCD", [0, 2, 4, 8, 12], [6, 10, 11, 14, 15]);
console.log(g.getFunction()); // --> D'

Feedback, Suggestions, Bugs

Any feedback, suggestions, or bugs can be mentioned in my Discord Server.

Package Sidebar

Install

npm i @helander/quine-mccluskey-js

Weekly Downloads

18

Version

1.0.0

License

MIT

Unpacked Size

19.6 kB

Total Files

6

Last publish

Collaborators

  • helander