Esempio n. 1
0
File: clause.c Progetto: ombt/ombt
Clause
Clause::operator-(const Clause &rhs) const
{
    return(Clause(*this) -= rhs);
}
Esempio n. 2
0
bool Clause::assign(VarAssignment newAss, Clause& dest) const{
	switch(n){
		case 3:
			if(VAR(a)==VAR(newAss.val)){
				if(a==newAss.val){
					return true;
				} else {
					dest = Clause(b,c);
					return false;
				}
			}
			if(VAR(b)==VAR(newAss.val)){
				if(b==newAss.val){
					return true;
				} else {
					dest = Clause(a,c);
					return false;
				}
			}
			if(VAR(c)==VAR(newAss.val)){
				if(c==newAss.val){
					return true;
				} else {
					dest = Clause(a,b);
					return false;
				}
			}
			break;

		case 2:
			if(VAR(a)==VAR(newAss.val)){
				if(a==newAss.val){
					return true;
				} else {
					dest = Clause(b);
					return false;
				}
			}
			if(VAR(b)==VAR(newAss.val)){
				if(b==newAss.val){
					return true;
				} else {
					dest = Clause(a);
					return false;
				}
			}
			break;

		case 1:
			if(VAR(a)==VAR(newAss.val)){
				if(a==newAss.val){
					return true;
				} else {
					dest = Clause();
					return false;
				}
			}
			break;
	}
	throw "Assigned irrelevant variable";
}