3#include <boost/optional.hpp>
18class StateValuationsBuilder;
29 StateValuation(std::vector<bool>&& booleanValues, std::vector<int64_t>&& integerValues, std::vector<storm::RationalNumber>&& rationalValues,
30 std::vector<int64_t>&& observationLabelValues = {});
33 std::vector<bool> booleanValues;
34 std::vector<int64_t> integerValues;
35 std::vector<storm::RationalNumber> rationalValues;
36 std::vector<int64_t> observationLabelValues;
41 StateValueIterator(
typename std::map<storm::expressions::Variable, uint64_t>::const_iterator variableIt,
42 typename std::map<std::string, uint64_t>::const_iterator labelIt,
43 typename std::map<storm::expressions::Variable, uint64_t>::const_iterator variableBegin,
44 typename std::map<storm::expressions::Variable, uint64_t>::const_iterator variableEnd,
45 typename std::map<std::string, uint64_t>::const_iterator labelBegin,
46 typename std::map<std::string, uint64_t>::const_iterator labelEnd,
StateValuation const* valuation);
60 std::string
const&
getName()
const;
69 typename std::map<storm::expressions::Variable, uint64_t>::const_iterator variableIt;
70 typename std::map<std::string, uint64_t>::const_iterator labelIt;
71 typename std::map<storm::expressions::Variable, uint64_t>::const_iterator variableBegin;
72 typename std::map<storm::expressions::Variable, uint64_t>::const_iterator variableEnd;
73 typename std::map<std::string, uint64_t>::const_iterator labelBegin;
74 typename std::map<std::string, uint64_t>::const_iterator labelEnd;
81 StateValueIteratorRange(std::map<storm::expressions::Variable, uint64_t>
const& variableMap, std::map<std::string, uint64_t>
const& labelMap,
87 std::map<storm::expressions::Variable, uint64_t>
const& variableMap;
88 std::map<std::string, uint64_t>
const& labelMap;
126 boost::optional<std::set<storm::expressions::Variable>>
const& selectedVariables = boost::none)
const;
133 template<
typename JsonRationalType = storm::RationalNumber>
135 boost::optional<std::set<storm::expressions::Variable>>
const& selectedVariables = boost::none)
const;
153 virtual std::size_t
hash()
const;
156 StateValuations(std::map<storm::expressions::Variable, uint64_t>
const& variableToIndexMap, std::vector<StateValuation>&& valuations);
160 std::map<storm::expressions::Variable, uint64_t> variableToIndexMap;
161 std::map<std::string, uint64_t> observationLabels;
163 std::vector<StateValuation> valuations;
193 std::vector<storm::RationalNumber>&& rationalValues, std::vector<int64_t>&& observationLabelValues = {});
206 uint64_t booleanVarCount;
207 uint64_t integerVarCount;
208 uint64_t rationalVarCount;
A bit vector that is internally represented as a vector of 64-bit values.
bool getBooleanValue() const
storm::expressions::Variable const & getVariable() const
bool operator==(StateValueIterator const &other)
int64_t getLabelValue() const
bool operator!=(StateValueIterator const &other)
int64_t getIntegerValue() const
bool isVariableAssignment() const
StateValueIterator & operator++()
storm::RationalNumber getRationalValue() const
StateValueIterator & operator--()
bool isLabelAssignment() const
std::string const & getLabel() const
std::string const & getName() const
StateValueIterator begin() const
StateValueIterator end() const
uint64_t getIntegerVarCount() const
uint64_t getBooleanVarCount() const
void addState(storm::storage::sparse::state_type const &state, std::vector< bool > &&booleanValues={}, std::vector< int64_t > &&integerValues={})
Adds a new state.
uint64_t getLabelCount() const
void addObservationLabel(std::string const &label)
StateValuations build()
Creates the finalized state valuations object.
void addVariable(storm::expressions::Variable const &variable)
Adds a new variable to keep track of for the state valuations.
uint_fast64_t getNumberOfStates() const
std::vector< storm::RationalNumber > getRationalValues(storm::expressions::Variable const &rationalVariable) const
Returns a vector of size getNumberOfStates() such that the i'th entry is the value of the given varia...
std::string toString(storm::storage::sparse::state_type const &stateIndex, bool pretty=true, boost::optional< std::set< storm::expressions::Variable > > const &selectedVariables=boost::none) const
Returns a string representation of the valuation.
StateValuations selectStates(storm::storage::BitVector const &selectedStates) const
storm::RationalNumber const & getRationalValue(storm::storage::sparse::state_type const &stateIndex, storm::expressions::Variable const &rationalVariable) const
bool isEmpty(storm::storage::sparse::state_type const &stateIndex) const
Returns true, if this valuation does not contain any value.
StateValuations()=default
std::vector< int64_t > getIntegerValues(storm::expressions::Variable const &integerVariable) const
Returns a vector of size getNumberOfStates() such that the i'th entry is the value of the given varia...
int64_t const & getIntegerValue(storm::storage::sparse::state_type const &stateIndex, storm::expressions::Variable const &integerVariable) const
virtual ~StateValuations()=default
storm::storage::BitVector getBooleanValues(storm::expressions::Variable const &booleanVariable) const
Returns a vector of size getNumberOfStates() such that the i'th entry is the value of the given varia...
storm::json< JsonRationalType > toJson(storm::storage::sparse::state_type const &stateIndex, boost::optional< std::set< storm::expressions::Variable > > const &selectedVariables=boost::none) const
Returns a JSON representation of this valuation.
StateValuations blowup(std::vector< uint64_t > const &mapNewToOld) const
StateValueIteratorRange at(storm::storage::sparse::state_type const &state) const
virtual std::size_t hash() const
virtual std::string getStateInfo(storm::storage::sparse::state_type const &state) const override
bool getBooleanValue(storm::storage::sparse::state_type const &stateIndex, storm::expressions::Variable const &booleanVariable) const
nlohmann::basic_json< std::map, std::vector, std::string, bool, int64_t, uint64_t, ValueType > json