return NULL;
}
+FIXME()!!!!
+
+/** This function belongs in the backend...Elements should not touch
+ binary constraints nor should they touch their encoders... */
+
Constraint * getElementValueBinaryIndexConstraint(Element* This, uint64_t value) {
ASTNodeType type = GETELEMENTTYPE(This);
ASSERT(type == ELEMSET || type == ELEMFUNCRETURN);
}
void initializeConstraintVars(CSolver* csolver, SATEncoder* This){
+ /** We really should not walk the free list to generate constraint
+ variables...walk the constraint tree instead. Or even better
+ yet, just do this as you need to during the encodeAllSATEncoder
+ walk. */
+
+ FIXME!!!!(); // Make sure Hamed sees comment above
+
uint size = getSizeVectorElement(csolver->allElements);
for(uint i=0; i<size; i++){
Element* element = getVectorElement(csolver->allElements, i);
Element* el= getArrayElement(elements, i);
Constraint* carray[inputNum];
for(uint j=0; j<inputNum; j++){
- carray[inputNum] = getElementValueBinaryIndexConstraint(el, entry->inputs[j]);
+ FIXME!!!!();
+ //This next line should not assume a particular encoding type for the element... just a generic element encoding function that should choose the appropriate encoding...
+
+ carray[inputNum] = getElementValueBinaryIndexConstraint(el, entry->inputs[j]);
}
Constraint* row= allocConstraint(IMPLIES, allocArrayConstraint(AND, inputNum, carray),
getElementValueBinaryIndexConstraint((Element*)This, entry->output));