class LogicTools::SameXImplicants
Represents a group of implicants with only singletons, sortable by number of ones.
Public Class Methods
new()
click to toggle source
Creates a group of implicants.
# File lib/logic_tools/logicsimplify_qm.rb, line 174 def initialize @implicants = [] @singletons = Set.new # Set used for ensuring each implicant is # present only once in the group end
Public Instance Methods
[](i)
click to toggle source
Gets implicant i
.
# File lib/logic_tools/logicsimplify_qm.rb, line 191 def [](i) @implicants[i] end
add(implicant)
click to toggle source
Adds implicant
to the group.
# File lib/logic_tools/logicsimplify_qm.rb, line 196 def add(implicant) # Nothing to do if +implicant+ is already present. return if @singletons.include?(implicant.bits) @implicants << implicant @singletons.add(implicant.bits.dup) end
Also aliased as: <<
each(&blk)
click to toggle source
Iterates over the implicants of the group.
# File lib/logic_tools/logicsimplify_qm.rb, line 186 def each(&blk) @implicants.each(&blk) end
size()
click to toggle source
Gets the number of implicants of the group.
# File lib/logic_tools/logicsimplify_qm.rb, line 181 def size @implicants.size end
sort!()
click to toggle source
Sort the implicants by number of ones.
# File lib/logic_tools/logicsimplify_qm.rb, line 206 def sort! @implicants.sort_by! {|implicant| implicant.count } end