class Gecode::Set::Cardinality::SetSizeOperand
Public Instance Methods
constrain_equal(int_operand, constrain, propagation_options)
click to toggle source
# File doc/tmp/rdoc_dev/gecoder/interface/constraints/set/cardinality.rb, line 34 def constrain_equal(int_operand, constrain, propagation_options) set = @set.to_set_var if constrain int_operand.must_be.in set.lower_bound.size..set.upper_bound.size end Gecode::Raw::cardinality(@model.active_space, set.bind, int_operand.to_int_var.bind) end
construct_receiver(params)
click to toggle source
# File doc/tmp/rdoc_dev/gecoder/interface/constraints/set/cardinality.rb, line 45 def construct_receiver(params) receiver = pre_cardinality_construct_receiver(params) set = @set receiver.instance_eval{ @set = set } class <<receiver alias_method :in_without_short_circuit, :in def in(range, options = {}) if range.kind_of?(Range) and !@params[:negate] and !options.has_key?(:reify) @params.update(:lhs => @set, :range => range) @model.add_constraint CardinalityConstraint.new(@model, @params) else in_without_short_circuit(range, options) end end end return receiver end
Also aliased as: pre_cardinality_construct_receiver
Public Class Methods
new(model, set_op)
click to toggle source
Calls superclass method
Gecode::Int::ShortCircuitEqualityOperand.new
# File doc/tmp/rdoc_dev/gecoder/interface/constraints/set/cardinality.rb, line 29 def initialize(model, set_op) super model @set = set_op end