5#include <boost/optional.hpp>
21 Edge(uint64_t sourceLocationIndex, uint64_t actionIndex, boost::optional<storm::expressions::Expression>
const& rate,
22 std::shared_ptr<TemplateEdge>
const& templateEdge,
23 std::vector<std::pair<uint64_t, storm::expressions::Expression>>
const& destinationTargetLocationsAndProbabilities);
24 Edge(uint64_t sourceLocationIndex, uint64_t actionIndex, boost::optional<storm::expressions::Expression>
const& rate,
25 std::shared_ptr<TemplateEdge>
const& templateEdge, std::vector<uint64_t>
const& destinationLocations,
26 std::vector<storm::expressions::Expression>
const& destinationProbabilities);
56 boost::optional<storm::expressions::Expression>
const&
getOptionalRate()
const;
96 void substitute(std::map<storm::expressions::Variable, storm::expressions::Expression>
const& substitution,
bool const substituteTranscendentalNumbers);
160 uint64_t sourceLocationIndex;
163 uint64_t actionIndex;
167 boost::optional<storm::expressions::Expression> rate;
170 std::shared_ptr<TemplateEdge> templateEdge;
173 std::vector<EdgeDestination> destinations;
bool hasSilentAction() const
Returns whether it contains the silent action.
void setTemplateEdge(std::shared_ptr< TemplateEdge > const &newTe)
void setRate(storm::expressions::Expression const &rate)
Sets a new rate for this edge.
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::string toString() const
bool usesAssignmentLevels(bool onlyTransient=false) const
Retrieves whether the edge uses an assignment level other than zero.
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.
std::shared_ptr< TemplateEdge > const & getTemplateEdge()
uint64_t getActionIndex() const
Retrieves the id of the action with which this edge is labeled.
void simplifyIndexedAssignments(VariableSet const &localVars)
std::vector< EdgeDestination > const & getDestinations() const
Retrieves the destinations of this edge.
bool hasRate() const
Retrieves whether this edge has an associated rate.
uint64_t getSourceLocationIndex() const
Retrieves the index of the source location.
bool hasTransientEdgeDestinationAssignments() const
Retrieves whether there is any transient edge destination assignment in the edge.
OrderedAssignments const & getAssignments() const
Retrieves the assignments of this edge.
storm::expressions::Expression const & getRate() const
Retrieves the rate of this edge.
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.
int64_t const & getHighestAssignmentLevel() const
Retrieves the highest assignment level occurring in a destination assignment If no assignment exists,...
std::size_t getNumberOfDestinations() const
Retrieves the number of destinations of this edge.
boost::optional< storm::expressions::Expression > const & getOptionalRate() const
Retrieves an optional that stores the rate if there is any and none otherwise.
uint64_t getColor() const
Retrieves the color of the edge.
int64_t const & getLowestAssignmentLevel() const
Retrieves the lowest assignment level occurring in a destination assignment.
void setGuard(storm::expressions::Expression const &guard)
Sets a new guard for this edge.
storm::expressions::Expression const & getGuard() const
Retrieves the guard of this edge.
EdgeDestination const & getDestination(uint64_t index) const
Retrieves the destination with the given index.
void setColor(uint64_t newColor)
Sets the color of the edge.
std::ostream & operator<<(std::ostream &stream, Assignment const &assignment)
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.