Class: Gecode::Int::Linear::ExpressionNode

Inherits:
Object
  • Object
show all
Defined in:
lib/gecoder/interface/constraints/int/linear.rb

Overview

Describes a single node in a linear expression.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, model = nil) ⇒ ExpressionNode

Returns a new instance of ExpressionNode.



123
124
125
126
127
128
129
130
# File 'lib/gecoder/interface/constraints/int/linear.rb', line 123

def initialize(value, model = nil)
  unless value.respond_to?(:to_int_var) or value.kind_of?(Fixnum)
    raise TypeError, 'Expected int operand or fixnum, ' + 
      "got #{value.class}."
  end
  @value = value
  @model = model
end

Instance Attribute Details

#modelObject (readonly)

:nodoc:



121
122
123
# File 'lib/gecoder/interface/constraints/int/linear.rb', line 121

def model
  @model
end

Instance Method Details

#to_minimodel_lin_expObject

Converts the linear expression to an instance of Gecode::Raw::MiniModel::LinExpr



134
135
136
137
138
139
140
# File 'lib/gecoder/interface/constraints/int/linear.rb', line 134

def to_minimodel_lin_exp
  expression = @value
  if expression.respond_to? :to_int_var
    expression = expression.to_int_var.bind * 1
  end
  expression
end