38 template<
typename T,
int ARITY>
40 T
const* value[ARITY];
49 T
const&
get(
int b)
const {
50 assert(0 <= b && b < ARITY);
60 assert(0 <= b && b < ARITY);
64 void setReference(
int b, T
const& v) {
65 assert(0 <= b && b < ARITY);
69 void setLevel(
int b,
int i) {
70 assert(0 <= b && b < ARITY);
74 friend std::ostream& operator<<(std::ostream& os,
DdValues const& o) {
76 for (
int b = 0; b < ARITY; ++b) {
77 if (b != 0) os <<
",";
78 os << o.value(b) <<
"@" << o.level(b);
101 template<
typename E,
typename T,
typename R = T>
105 return *
static_cast<E*
>(
this);
108 E
const& entity()
const {
109 return *
static_cast<E const*
>(
this);
bool showMessages() const
Declares preference to show messages.
void destructLevel(int i)
Destructs i-th level of data storage.
R getValue(T const &v)
Makes a result value.
bool isThreadSafe() const
Declares thread-safety.
void initialize(int level)
Initialization.
int getLevel(int b) const
Returns the level of the b-th child.
Collection of child node values/levels for DdEval::evalNode function interface.
Base class of DD evaluators.