After resolving conflicts ...
authorHamed <hamed.gorjiara@gmail.com>
Sat, 1 Jul 2017 00:30:27 +0000 (17:30 -0700)
committerHamed <hamed.gorjiara@gmail.com>
Sat, 1 Jul 2017 00:30:27 +0000 (17:30 -0700)
1  2 
src/Backend/satencoder.c

index d51a262c77f5df1de066e99de7856ce1ee3749ea,397512148f0470728fb7e0ec8a8ee6aafdd0c62c..c874c81c6fbcc6bf96d1948173bed6e85390e18c
@@@ -222,48 -220,8 +222,49 @@@ Constraint * encodePartialOrderSATEncod
  }
  
  Constraint * encodePredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint) {
 -      //TO IMPLEMENT
 -      
 +      switch(GETPREDICATETYPE(constraint) ){
 +              case TABLEPRED:
 +                      return encodeTablePredicateSATEncoder(This, constraint);
 +              case OPERATORPRED:
 +                      return encodeOperatorPredicateSATEncoder(This, constraint);
 +              default:
 +                      ASSERT(0);
 +      }
 +      return NULL;
 +}
 +
 +Constraint * encodeTablePredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint){
 +      switch(constraint->encoding.type){
 +              case ENUMERATEIMPLICATIONS:
 +                      return encodeEnumTablePredicateSATEncoder(This, constraint);
 +              case CIRCUIT:
 +                      ASSERT(0);
 +                      break;
 +              default:
 +                      ASSERT(0);
 +      }
 +      return NULL;
 +}
 +
 +Constraint * encodeEnumTablePredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint){
-       TableEntry* entries = &(((PredicateTable*)constraint->predicate)->table->entries);
++      VectorTableEntry* entries = &(((PredicateTable*)constraint->predicate)->table->entries);
 +      uint size = getSizeVectorTableEntry(entries);
 +      for(uint i=0; i<size; i++){
 +              TableEntry* entry = getVectorTableEntry(entries, i);
 +              
 +      }
++      return NULL;
 +}
 +
 +Constraint * encodeOperatorPredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint){
 +      switch(constraint->encoding.type){
 +              case ENUMERATEIMPLICATIONS:
 +                      break;
 +              case CIRCUIT:
 +                      break;
 +              default:
 +                      ASSERT(0);
 +      }
        return NULL;
  }