Class: Gecode::Constraints::IntEnum::Arithmetic::MinExpressionStub

Inherits:
Gecode::Constraints::Int::CompositeStub show all
Defined in:
lib/gecoder/interface/constraints/int_enum/arithmetic.rb

Overview

Describes a CompositeStub for the min constraint, which constrains the minimum value of the integer variables in an enumeration.

Example

# The minimum must be positive.
int_enum.min.must > 0

# The minimum must equal a integer variable +min+.
int_enum.min.must == min

# The minimum must not be non-positive. The constraint is reified with the 
# boolean variable +is_positive+ and strength +domain+ is selected.
int_enum.min.must_not_be.less_or_equal(0, :reify => is_positive, 
  :strength => :domain)

Instance Method Summary collapse

Methods inherited from Gecode::Constraints::Int::CompositeStub

#initialize

Methods inherited from CompositeStub

#initialize

Methods included from LeftHandSideMethods

#must, #must_not

Methods inherited from ExpressionStub

#initialize

Constructor Details

This class inherits a constructor from Gecode::Constraints::Int::CompositeStub

Instance Method Details

#constrain_equal(variable, params, constrain) ⇒ Object



62
63
64
65
66
67
68
69
70
# File 'lib/gecoder/interface/constraints/int_enum/arithmetic.rb', line 62

def constrain_equal(variable, params, constrain)
  enum = @params[:lhs]
  if constrain
    variable.must_be.in enum.domain_range
  end
  
  Gecode::Raw::min(@model.active_space, enum.to_int_var_array, 
    variable.bind, *propagation_options)
end