58 void substitute(std::map<storm::expressions::Variable, storm::expressions::Expression>
const& substitution,
bool const substituteTranscendentalNumbers);
121 std::vector<TemplateEdgeDestination> destinations;
126 int64_t lowestAssignmentLevel, highestAssignmentLevel;
bool hasTransientEdgeDestinationAssignments() const
Retrieves whether there is any transient edge destination assignment in the edge.
void finalize(Model const &containingModel)
Finalizes the building of this edge.
TemplateEdge(TemplateEdge const &)=default
storm::expressions::Expression const & getGuard() const
bool usesVariablesInNonTransientAssignments(std::set< storm::expressions::Variable > const &variables) const
Checks whether the provided variables appear on the right-hand side of non-transient assignments.
std::vector< TemplateEdgeDestination > const & getDestinations() const
int64_t const & getLowestAssignmentLevel() const
Retrieves the lowest assignment level occurring in a destination assignment.
bool isLinear() const
Checks the template edge for linearity.
bool usesAssignmentLevels(bool onlyTransient=false) const
Retrieves whether the edge uses an assignment level other than zero.
void setGuard(storm::expressions::Expression const &newGuard)
void liftTransientDestinationAssignments(int64_t maxLevel=0)
Finds the transient assignments common to all destinations and lifts them to the edge.
OrderedAssignments const & getAssignments() const
std::size_t getNumberOfDestinations() const
int64_t const & getHighestAssignmentLevel() const
Retrieves the highest assignment level occurring in a destination assignment If no assignment exists,...
void pushAssignmentsToDestinations()
Shifts the assingments from the edges to the destinations.
bool hasEdgeDestinationAssignments() const
void substitute(std::map< storm::expressions::Variable, storm::expressions::Expression > const &substitution, bool const substituteTranscendentalNumbers)
Substitutes all variables in all expressions according to the given substitution.
bool addTransientAssignment(Assignment const &assignment, bool addToExisting=false)
Adds a transient assignment to this edge.
void changeAssignmentVariables(std::map< Variable const *, std::reference_wrapper< Variable const > > const &remapping)
Changes all variables in assignments based on the given mapping.
TemplateEdge simplifyIndexedAssignments(bool syncronized, VariableSet const &localVars) const
Simplify Indexed Assignments.
TemplateEdgeDestination const & getDestination(uint64_t index) const
storm::storage::FlatSet< storm::expressions::Variable > const & getWrittenGlobalVariables() const
Retrieves a set of (global) variables that are written by at least one of the edge's destinations.
void addDestination(TemplateEdgeDestination const &destination)
boost::container::flat_set< Key, std::less< Key >, boost::container::new_allocator< Key > > FlatSet
Redefinition of flat_set was needed, because from Boost 1.70 on the default allocator is set to void.