src/distillerlongwithimpl.cpp
//returns FALSE in case clause is shortened, and TRUE in case it is removed
returns FALSE in case clause is shortened, and TRUE in case it is removed
returns FALSE in case clause is shortened and TRUE in case it is removed
bool DistillerLongWithImpl::remove_or_shrink_clause(Clause& cl, ClOffset& offset)
{
    timeAvailable -= (long)cl.size()*10;
    cache_based_data.remLitCache += thisRemLitCache;
    cache_based_data.remLitBin += thisremLitBin;
    tmpStats.shrinked++;
    timeAvailable -= (long)lits.size()*2 + 50;
    Clause* c2 = solver->add_clause_int(lits, cl.red(), cl.stats);
    if (c2 != NULL) {
        solver->detachClause(offset);
        solver->free_cl(offset);
        offset = solver->cl_alloc.get_offset(c2);
        return false;
    }
    return true;
}
bool DistillerLongWithImpl :: remove_or_shrink_clause ( Clause & cl , ClOffset & offset ) { timeAvailable -= ( long ) cl . size ( ) * 10 ; cache_based_data . remLitCache += thisRemLitCache ; cache_based_data . remLitBin += thisremLitBin ; tmpStats . shrinked ++ ; timeAvailable -= ( long ) lits . size ( ) * 2 + 50 ; Clause * c2 = solver -> add_clause_int ( lits , cl . red ( ) , cl . stats ) ; if ( c2 != NULL ) { solver -> detachClause ( offset ) ; solver -> free_cl ( offset ) ; offset = solver -> cl_alloc . get_offset ( c2 ) ; return false ; } return true ; }
returns FALSE in case clause is shortened, and TRUE in case it is removed
returns FALSE in case clause is shortened and TRUE in case it is removed
//Remove or shrink clause //Implicit clause or non-existent after addition, remove