class Gecode::SelectedSet::Element::SelectedSetIntersectionOperand

Public Instance Methods

constrain_equal(set_operand, constrain, propagation_options) click to toggle source
# File doc/tmp/rdoc_dev/gecoder/interface/constraints/selected_set/select.rb, line 92
def constrain_equal(set_operand, constrain, propagation_options)
  enum, indices = @selected_set.to_selected_set
  universe = @universe

  # We can't do any useful constraining here since the empty intersection
  # is the universe.

  if universe.nil?
    Gecode::Raw::elementsInter(@model.active_space, 
      enum.to_set_enum.bind_array, indices.to_set_var.bind, 
      set_operand.to_set_var.bind)
  else
    Gecode::Raw::elementsInter(@model.active_space,  
      enum.to_set_enum.bind_array, indices.to_set_var.bind, 
      set_operand.to_set_var.bind,
      Gecode::Util.constant_set_to_int_set(universe))
  end
end

Public Class Methods

new(model, selected_set, universe) click to toggle source
# File doc/tmp/rdoc_dev/gecoder/interface/constraints/selected_set/select.rb, line 86
def initialize(model, selected_set, universe)
  super model
  @selected_set = selected_set
  @universe = universe
end