module YPetri::Simulation::InitialMarking::Access

Public Instance Methods

Im(array) click to toggle source

Expects a single array of places, and returns their marking as it would appear right after the simulation reset.

# File lib/y_petri/simulation/initial_marking/access.rb, line 34
def Im array
  places( array ).map { |place|
    place.free? ? initial_marking( place ) : marking_clamp( place )
  }
end
Initial_markings(array) click to toggle source

Expects a single array of free places or place ids, and returns an array of their initial markings.

# File lib/y_petri/simulation/initial_marking/access.rb, line 10
def Initial_markings array
  Free_places( array ).map { |place| initial_marking[ place place ] }
end
Also aliased as: initial_Markings
im(*places) click to toggle source

Expects an arbitrary number of places or place identifiers, and returns their marking as it would appear right after the simulation reset. If no arguments are given, returns all of them.

# File lib/y_petri/simulation/initial_marking/access.rb, line 44
def im *places
  return Im places() if places.empty?
  Im( places )
end
im_vector(ids=nil) click to toggle source

Returns initial marking vector for all places. Like #initial_marking, but returns a column vector.

# File lib/y_petri/simulation/initial_marking/access.rb, line 59
def im_vector ids=nil
  im( ids ).to_column_vector
end
initial_Markings(array)
Alias for: Initial_markings
initial_marking(arg=L!) click to toggle source

Expects a single free place and returns the value of its initial marking.

# File lib/y_petri/simulation/initial_marking/access.rb, line 26
def initial_marking arg=L!
  return initial_markings( arg ).first unless arg.local_object?
  @initial_marking or fail TypeError, "+@initial_marking+ not present yet!"
end
initial_marking_vector(ids=nil) click to toggle source

Returns initial marking vector for free places. Like #initial_marking, but returns a column vector.

# File lib/y_petri/simulation/initial_marking/access.rb, line 52
def initial_marking_vector ids=nil
  initial_marking( ids ).to_column_vector
end
initial_markings(*free_places) click to toggle source

Expects an arbitrary number of arguments identifying free places, whose initial markings are then returned. If no arguments are given, acts as a getter of +@initial_marking+ instance variable.

# File lib/y_petri/simulation/initial_marking/access.rb, line 19
def initial_markings *free_places
  return initial_marking if free_places.empty?
  Initial_markings( free_places )
end

Private Instance Methods

set_initial_marking( place, to: (fail ArgumentError) ) click to toggle source

Sets the initial marking of a place (frontend of +InitialMarking#set+).

# File lib/y_petri/simulation/initial_marking/access.rb, line 67
def set_initial_marking( place, to: (fail ArgumentError) )
  initial_marking.set( place, to: to )
end