Module: HungarianAlgorithmC

Defined in:
lib/hungarian_algorithm_c.rb,
lib/hungarian_algorithm_c/version.rb,
ext/hungarian_algorithm_c/hungarian_algorithm_c.c

Constant Summary collapse

VERSION =
'0.0.3'

Class Method Summary collapse

Class Method Details

.find_pairings(array) ⇒ Object



5
6
7
8
# File 'lib/hungarian_algorithm_c.rb', line 5

def find_pairings(array)
  validate!(array)
  pairs(array.flatten, array.size)
end

.pairsObject



11
# File 'ext/hungarian_algorithm_c/hungarian_algorithm_c.c', line 11

VALUE pairs(VALUE self, VALUE flattened_array_ruby, VALUE row_size_val);

.rectangular?(array) ⇒ Boolean



15
16
17
18
# File 'lib/hungarian_algorithm_c.rb', line 15

def rectangular?(array)
  row_size = array.size
  array.all? { |column| row_size == column.size }
end

.validate!(array) ⇒ Object

Raises:

  • (ArgumentError)


10
11
12
13
# File 'lib/hungarian_algorithm_c.rb', line 10

def validate!(array)
  return if rectangular?(array)
  raise ArgumentError.new('array must be rectangular')
end