X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=blobdiff_plain;f=src%2FBackend%2Fsatelemencoder.cc;h=d924e6a9062e0b900f0e65bdbc5988bb6c2f4b83;hp=aa739242d002acb28330e6112a6f702ec7548b41;hb=8fed13e71e8ce1734d54398c34fd382452befc60;hpb=6f5e234d3f2862efea49475caf5fc6b296390f69 diff --git a/src/Backend/satelemencoder.cc b/src/Backend/satelemencoder.cc index aa73924..d924e6a 100644 --- a/src/Backend/satelemencoder.cc +++ b/src/Backend/satelemencoder.cc @@ -227,6 +227,15 @@ void SATEncoder::freezeElementVariables(ElementEncoding *encoding){ ASSERT(edgeIsVarConst(e)); freezeVariable(cnf, e); } + for(uint i=0; i< encoding->encArraySize; i++){ + if(encoding->isinUseElement(i) && encoding->encoding != EENC_NONE && encoding->numVars > 1){ + Edge e = encoding->edgeArray[i]; + if(!edgeIsNull(e)){ + ASSERT(edgeIsVarConst(e)); + freezeVariable(cnf, e); + } + } + } } void SATEncoder::generateBinaryIndexEncodingVars(ElementEncoding *encoding) { @@ -294,6 +303,9 @@ void SATEncoder::generateElementEncoding(Element *element) { } int SATEncoder::getMaximumUsedSize(ElementEncoding *encoding) { + if(encoding->encArraySize == 1){ + return 1; + } for (int i = encoding->encArraySize - 1; i >= 0; i--) { if (encoding->isinUseElement(i)) return i + 1;