if (e != NULL)
return e;
e = solver->getElementVar(set->clone(solver, map));
- map->put(e, e);
+ map->put(this, e);
return e;
}
for (uint i = 0; i < inputs.getSize(); i++) {
array[i] = inputs.get(i)->clone(solver, map);
}
- Element *e = solver->applyFunction(function->clone(solver, map), array, inputs.getSize(), overflowstatus->clone(solver, map));
+ BooleanEdge ofstatus = overflowstatus ? cloneEdge(solver, map, overflowstatus) : BooleanEdge();
+ Element *e = solver->applyFunction(function->clone(solver, map), array, inputs.getSize(), ofstatus);
return e;
}
}
void ElementSet::print() {
- model_print("{ElementSet:");
+ model_print("{ElementSet<%p>:", this);
set->print();
model_print(" %p ", this);
getElementEncoding()->print();
}
void ElementConst::print() {
- model_print("{ElementConst: %lu}\n", value);
+ model_print("{ElementConst<%p>: %" PRIu64 "}\n", this, value);
}
void ElementFunction::serialize(Serializer *serializer) {
}
void ElementFunction::print() {
- model_print("{ElementFunction:\n");
+ model_print("{ElementFunction<%p>:\n", this);
function->print();
+ model_print("OverFlow Boolean Flag:\n");
+ overflowstatus.getBoolean()->print();
+ model_print("Range:\n");
+ getRange()->print();
model_print("Elements:\n");
uint size = inputs.getSize();
for (uint i = 0; i < size; i++) {