Changes for version 0.19

  • 2019-07-31
    • There was more processing than needed in least_covered() to do what was basically a find-the-minimum loop, plus it was throwing away information that had to be re-created by the next line of code. Consolidated all of that, resulting in fewer hash-of-array manipulations, and changed the return value from the single term to the term plus its covers. This won't result in a significant speed increase, as most terms are already eliminated by the time we reach this code, but it does simplify it and make it more readable.
    • A side-effect of the above is that countels() is no longer needed, and was removed.
    • Also, while I was doing A-B comparisons, the new version of the function was named covered_least(), and it stayed that way.
    • Streamlined remels() some more, and changed it from a function that got called multiple times for each item in a list, to a function that is called once with a list.
    • Moved the next-level-implicant check of version 0.18 outward two loops (some duplicates still popped up as two different terms could bit flip to the same implicant).
    • Created width=>6 tests in new files 28-solve.t and 29-solve.t.

Modules

solve Quine-McCluskey set-cover problems
provide formatting functions to Algorithm::QuineMcCluskey
provide utility functions to Algorithm::QuineMcCluskey