#include "satencoder.h"
#include "set.h"
+const char *elemEncTypeNames[] = {"UNASSIGNED", "ONEHOT", "UNARY", "BINARYINDEX", "BINARYVAL"};
+
ElementEncoding::ElementEncoding(Element *_element) :
type(ELEM_UNASSIGNED),
element(_element),
}
void ElementEncoding::encodingArrayInitialization() {
- Set *set = getElementSet(element);
- ASSERT(!set->isRange);
- uint size = set->members->getSize();
+ Set *set = element->getRange();
+ uint size = set->getSize();
uint encSize = getSizeEncodingArray(size);
allocEncodingArrayElement(encSize);
allocInUseArrayElement(encSize);
for (uint i = 0; i < size; i++) {
- encodingArray[i] = set->members->get(i);
+ encodingArray[i] = set->getMemberAt(i);
setInUseElement(i);
}
}
+
+void ElementEncoding::print() {
+ model_print("%s ", elemEncTypeNames[type]);
+ if (type == BINARYINDEX) {
+ for (uint i = 0; i < encArraySize; i++) {
+ if (i != 0)
+ model_print(", ");
+ if (isinUseElement(i))
+ model_print("%" PRIu64 "", encodingArray[i]);
+ else
+ model_print("_");
+ }
+ }
+}