uint64_t getElementValueBinaryIndexSATTranslator(CSolver* This, ElementEncoding* elemEnc){
uint index=0;
- for(int i=elemEnc->numVars-1;i>=0;i--) {
+ for(uint i=elemEnc->numVars-1;i>=0;i--) {
index=index<<1;
if (getValueSolver(This->satEncoder->cnf->solver, getEdgeVar( elemEnc->variables[i] )))
index |= 1;
uint64_t getElementValueBinaryValueSATTranslator(CSolver* This, ElementEncoding* elemEnc){
uint64_t value=0;
- for(int i=elemEnc->numVars-1;i>=0;i--) {
+ for(uint i=elemEnc->numVars-1;i>=0;i--) {
value=value<<1;
if (getValueSolver(This->satEncoder->cnf->solver, getEdgeVar( elemEnc->variables[i] )) )
value |= 1;
uint64_t getElementValueOneHotSATTranslator(CSolver* This, ElementEncoding* elemEnc){
uint index=0;
- for(int i=elemEnc->numVars-1;i>=0;i--) {
+ for(uint i=0; i< elemEnc->numVars; i++) {
if (getValueSolver(This->satEncoder->cnf->solver, getEdgeVar( elemEnc->variables[i] )))
index = i;
}
return getSetElement(getElementSet(element), 0);
switch(elemEnc->type){
case ONEHOT:
- getElementValueOneHotSATTranslator(This, elemEnc);
- break;
+ return getElementValueOneHotSATTranslator(This, elemEnc);
case UNARY:
- getElementValueUnarySATTranslator(This, elemEnc);
- break;
+ return getElementValueUnarySATTranslator(This, elemEnc);
case BINARYINDEX:
return getElementValueBinaryIndexSATTranslator(This, elemEnc);
case ONEHOTBINARY: