Algorithm-QuineMcCluskey
view release on metacpan or search on metacpan
2018-08-29
- We now use Logic::Minimizer as a base class.
- Consequently, removed attributes and methods that are
now in Logic::Minimizer, and are provided automatically.
- Use L::M's catch_errors() for attribute validation.
- Update Build.PL with Logic::Minimizer requirement.
- And updated the version number everywhere.
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
- Change solve() to return a scalar.
- With solve() now returning a scalar, change tests to look
for an answer in a set of possible answers (some terms sets
can be covered by more than one equation.)
2015-5-30
- Make remels() remove the hash key if the array ref is empty.
- Change columns() to not auto-create empty keys.
2015-4-18
- Made the primes attribute "lazy", so that one can look
up prime implicants without going through the solving
process.
2015-4-15
- Replace row_dom() and col_dom() with row_dominance()
in Util.pm. When they were changed to returning keys
instead of deleting from the hash immediately, they
became essentially the same function, just called
with different parameters.
2015-3-27
- Changed row_dom() and col_dom() to return the rows/cols
to remove, instead of removing them inside.
- Changed row_dom() and col_dom() from methods to functions,
dontcares attributes from the passed-in list of decimal
into bitstrings, and saved them back in the attributes.
We can't do that now, because Moose has set those fields
typed as 'ArrarRef[Int]'.
So, set up three new fields that represent the three fields
in their bitstring form: min_bits, max_bits, and dc_bits.
2014-04-30
- Moosified ("has" declarations) the attributes.
- Achieved a compile-error-free version using Moose instead
of Alias. Now to make it runtime-error-free.
- As part of the compilation process, moved from a Makefile.PL
base (which was creating errors of its own) to Build.PL,
which Just Works.
- Turned attributes boolean, imp, and bits into a local
variables as they were only used in single functions.
- Defined and made use of predicate functions for attributes
minterms, maxterms, and dontcares. Simplifies some sanity
checks.
- Added methods allterms() and minmax_terms() to simplify
coding.
- List::MoreUtils isn't actually being used in A::QMcC (it is
( run in 0.504 second using v1.01-cache-2.11-cpan-8d75d55dd25 )