#ifdef TRACE_DEBUG
model_print("Operator Function ...\n");
#endif
- FunctionOperator *function = (FunctionOperator *) func->function;
+ FunctionOperator *function = (FunctionOperator *) func->getFunction();
uint numDomains = func->inputs.getSize();
/* Call base encoders for children */
uint64_t vals[numDomains];//setup value array
for (uint i = 0; i < numDomains; i++) {
- Set *set = getElementSet(func->inputs.get(i));
+ Set *set = func->inputs.get(i)->getRange();
vals[i] = set->getElement(indices[i]);
}
Edge carray[numDomains + 1];
uint64_t result = function->applyFunctionOperator(numDomains, vals);
- bool isInRange = ((FunctionOperator *)func->function)->isInRangeFunction(result);
+ bool isInRange = ((FunctionOperator *)func->getFunction())->isInRangeFunction(result);
bool needClause = isInRange;
if (function->overflowbehavior == SATC_OVERFLOWSETSFLAG || function->overflowbehavior == SATC_FLAGIFFOVERFLOW) {
needClause = true;
notfinished = false;
for (uint i = 0; i < numDomains; i++) {
uint index = ++indices[i];
- Set *set = getElementSet(func->inputs.get(i));
+ Set *set = func->inputs.get(i)->getRange();
if (index < set->getSize()) {
vals[i] = set->getElement(index);
ElementEncoding *ee1 = getElementEncoding(elem1);
ASSERT(ee0->numVars == ee1->numVars);
uint numVars = ee0->numVars;
- switch (predicate->op) {
+ switch (predicate->getOp()) {
case SATC_EQUALS:
return generateEquivNVConstraint(cnf, numVars, ee0->variables, ee1->variables);
case SATC_LT: