Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
JaniChoiceOrigins.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <string>
5
8
9namespace storm {
10namespace jani {
11class Model;
12}
13
14namespace storage {
15namespace sparse {
16
22 public:
24
28 JaniChoiceOrigins(std::shared_ptr<storm::jani::Model const> const& janiModel, std::vector<uint_fast64_t> const& indexToIdentifierMapping,
29 std::vector<EdgeIndexSet> const& identifierToEdgeIndexSetMapping);
30
31 virtual ~JaniChoiceOrigins() = default;
32
33 virtual bool isJaniChoiceOrigins() const override;
34
35 /*
36 * Returns the number of identifiers that are used by this object.
37 * This can be used to, e.g., loop over all identifiers.
38 */
39 virtual uint_fast64_t getNumberOfIdentifiers() const override;
40
44 storm::jani::Model const& getModel() const;
45
46 /*
47 * Returns the set of edges that induced the choice with the given index.
48 * The edges set is represented by a set of indices that encode an automaton index and its local edge index.
49 */
50 EdgeIndexSet const& getEdgeIndexSet(uint_fast64_t choiceIndex) const;
51
52 std::size_t hash() const override;
53
54 private:
55 /*
56 * Returns a copy of this object where the mapping of choice indices to origin identifiers is replaced by the given one.
57 */
58 virtual std::shared_ptr<ChoiceOrigins> cloneWithNewIndexToIdentifierMapping(std::vector<uint_fast64_t>&& indexToIdentifierMapping) const override;
59
60 /*
61 * Computes the identifier infos (i.e., human readable strings representing the choice origins).
62 */
63 virtual void computeIdentifierInfos() const override;
64
65 /*
66 * Computes the identifier infos as json (i.e., a machine readable representation of the choice origins).
67 */
68 virtual void computeIdentifierJson() const override;
69
70 std::shared_ptr<storm::jani::Model const> model;
71 std::vector<EdgeIndexSet> identifierToEdgeIndexSet;
72};
73} // namespace sparse
74} // namespace storage
75} // namespace storm
This class represents the origin of the choices of a model in terms of the input model specification ...
This class represents for each choice the origin in the jani specification // TODO complete this.
storm::jani::Model const & getModel() const
Retrieves the associated JANI model.
virtual bool isJaniChoiceOrigins() const override
storm::storage::FlatSet< uint_fast64_t > EdgeIndexSet
virtual uint_fast64_t getNumberOfIdentifiers() const override
EdgeIndexSet const & getEdgeIndexSet(uint_fast64_t choiceIndex) const
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.
Definition BoostTypes.h:13
LabParser.cpp.
Definition cli.cpp:18