module RgGen::SystemVerilog::RTL::PartialSum

Private Instance Methods

calc_partial_sum(kind_ans_values) click to toggle source
# File lib/rggen/systemverilog/rtl/partial_sum.rb, line 17
def calc_partial_sum(kind_ans_values)
  kind, values = kind_ans_values
  kind && values.sum || values
end
integer?(value) click to toggle source
# File lib/rggen/systemverilog/rtl/partial_sum.rb, line 22
def integer?(value)
  value.is_a?(Integer)
end
partial_sums(operands) click to toggle source
# File lib/rggen/systemverilog/rtl/partial_sum.rb, line 9
def partial_sums(operands)
  operands
    .chunk(&method(:integer?))
    .flat_map(&method(:calc_partial_sum))
    .reject { |value| integer?(value) && value.zero? }
    .tap { |sums| sums.empty? && (sums << 0) }
end