module YPetri::Simulation::InitialMarking::Access
Public Instance Methods
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
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
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
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
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
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
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
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