object QMCMinimizer extends Minimizer
A Minimizer implementation to use Quine-Mccluskey algorithm to minimize the TruthTable.
This algorithm can always find the best solution, but is a NP-Complete algorithm, which means, for large-scale TruthTable minimization task, it will be really slow, and might run out of memory of JVM stack.
In this situation, users should consider switch to EspressoMinimizer, which uses heuristic algorithm providing a sub-optimized result.
- Source
- QMCMinimizer.scala
- Alphabetic
- By Inheritance
- QMCMinimizer
- Minimizer
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def minimize(table: TruthTable): TruthTable
Minimize a multi-input multi-output logic function given by the truth table
table
, with function output values on unspecified inputs treated asdefault
, and return a minimized PLA-like representation of the function.Minimize a multi-input multi-output logic function given by the truth table
table
, with function output values on unspecified inputs treated asdefault
, and return a minimized PLA-like representation of the function.Each bit of
table[]._1
encodes one 1-bit input variable of the logic function, and each bit ofdefault
andtable[]._2
represents one 1-bit output value of the function.- table
Truth table, can have don't cares in both inputs and outputs, specified as [(inputs, outputs), ...]
- returns
Minimized truth table, [(inputs, outputs), ...]
- Definition Classes
- QMCMinimizer → Minimizer
minimize(BitPat("b?"), Seq( (BitPat("b000"), BitPat("b0")), // (BitPat("b001"), BitPat("b?")), // same as default, can be omitted // (BitPat("b010"), BitPat("b?")), // same as default, can be omitted (BitPat("b011"), BitPat("b0")), (BitPat("b100"), BitPat("b1")), (BitPat("b101"), BitPat("b1")), (BitPat("b110"), BitPat("b0")), (BitPat("b111"), BitPat("b1")), ))
Example: - final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()