Exemplo n.º 1
0
void UselessBinRemover::removeBin(const Lit& lit1, const Lit& lit2)
{
    /*******************
    Lit litFind1 = lit_Undef;
    Lit litFind2 = lit_Undef;

    if (solver.binwatches[(~lit1).toInt()].size() < solver.binwatches[(~lit2).toInt()].size()) {
        litFind1 = lit1;
        litFind2 = lit2;
    } else {
        litFind1 = lit2;
        litFind2 = lit1;
    }
    ********************/

    //Find AND remove from watches
    #ifdef VERBOSE_DEBUG
    std::cout << "Removing useless bin: ";
    lit1.print(); lit2.printFull();
    #endif //VERBOSE_DEBUG

    solver.removeWatchedBinClAll(solver.binwatches[(~lit1).toInt()], lit2);
    solver.removeWatchedBinClAll(solver.binwatches[(~lit2).toInt()], lit1);
    onlyNonLearntBins.removeBin(lit1, lit2);
}