module YPetri::Simulation::Transitions::Type_ts

Public Instance Methods

delta() click to toggle source

Delta contribution to free places.

# File lib/y_petri/simulation/transitions/ts.rb, line 18
def delta
  delta_closure.call
end
delta_all()
Alias for: Δ
delta_closure()
Alias for: to_delta_closure
delta_closures() click to toggle source

ts transitions have action closures.

# File lib/y_petri/simulation/transitions/ts.rb, line 12
def delta_closures
  map &:delta_closure
end
to_delta_closure() click to toggle source

Constructs a delta closure that outputs a delta vector corresponding to free places. The vector is the delta contribution of the transitions in this collection.

# File lib/y_petri/simulation/transitions/ts.rb, line 33
    def to_delta_closure
      fp = free_places
      closures = delta_closures
      sMV = simulation.MarkingVector
      code_sections = map.with_index do |t, i|
        "a = closures[#{i}].call\n" +
          t.increment_by_codomain_code( vector: "delta", source: "a" )
      end
      body = code_sections.join( "\n" )
      λ = <<-LAMBDA
        -> do
        delta = sMV.zero( fp )
        #{body}
        return delta
        end
      LAMBDA
      eval λ
    end
Also aliased as: delta_closure
Δ() click to toggle source

Delta contribution to all places

# File lib/y_petri/simulation/transitions/ts.rb, line 24
def Δ
  f2a * delta
end
Also aliased as: delta_all