Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ValuationDescription.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <optional>
5#include <variant>
6
10
11namespace storm::storage::sparse {
20 struct Padding {
21 uint64_t padding{0};
22 static auto constexpr JsonKeys = {"padding"};
24 };
25 struct Variable {
26 std::string name;
27 std::optional<bool> isOptional;
29 std::optional<int64_t> lower, upper, offset;
30 static auto constexpr JsonKeys = {"name", "is-optional", "type", "lower", "upper", "offset"};
32 };
33 std::vector<std::variant<Padding, Variable>> variables;
34 static auto constexpr JsonKeys = {"variables"};
36
41 uint64_t sizeInBits() const;
42
46 bool hasStringVariable() const;
47};
48
55 bool unique{false};
56 std::optional<uint64_t> numStrings;
57 std::vector<ValuationClassDescription> classes;
58 static auto constexpr JsonKeys = {"unique", "#strings", "classes"};
60};
61} // namespace storm::storage::sparse
Helper struct to enable json serialization.
Describes the layout of a class of valuations (e.g.
uint64_t sizeInBits() const
Computes the size in bits of a valuation.
std::vector< std::variant< Padding, Variable > > variables
Describes all valuation classes for a set of entities (e.g.
std::vector< ValuationClassDescription > classes