#ifndef KSAT_CLAUSE_2_MINISAT_CLAUSE
#define KSAT_CLAUSE_2_MINISAT_CLAUSE

#include "util/convert.h"
#include "util/ksatinstance.h"

#include "core/SolverTypes.h"

#include <cmath>

namespace satlab
{
namespace types
{

template<typename = Minisat::vec<Minisat::Lit>, typename = KSATinstance::CLAUSE>
void convertRef(Minisat::vec<Minisat::Lit>& clauseVec,
                const KSATinstance::CLAUSE& clause)
{
    clauseVec.clear();
    
    int var;
    for(auto lit : clause)
    {
        var = abs(lit) - 1;
        
        clauseVec.push(Minisat::mkLit(var, lit < 0));
    }
}

}
}
#endif // KSAT_CLAUSE_2_MINISAT_CLAUSE
