예제 #1
0
파일: clingo.cpp 프로젝트: lc2casp/lc2casp
	//! Returns the truth value that is currently assigned to lit or Value_t::Free if lit is unassigned.
	virtual Value_t  value(Lit_t lit) const {
		CLASP_FAIL_IF(!this->TheoryPropagator::PP::hasLit(lit), "invalid variable");
		switch (solver_->value(decodeVar(lit))) {
			default: return Value_t::Free;
			case value_true:  return lit >= 0 ? Value_t::True  : Value_t::False;
			case value_false: return lit >= 0 ? Value_t::False : Value_t::True;
		}
	}
예제 #2
0
파일: clingo.cpp 프로젝트: potassco/clasp
ClingoAssignment::Value_t ClingoAssignment::value(Lit_t lit)  const {
	POTASSCO_REQUIRE(ClingoAssignment::hasLit(lit), "Invalid literal");
	switch (solver_->value(decodeVar(lit))) {
		default: return Value_t::Free;
		case value_true:  return lit >= 0 ? Value_t::True  : Value_t::False;
		case value_false: return lit >= 0 ? Value_t::False : Value_t::True;
	}
}
예제 #3
0
파일: clingo.cpp 프로젝트: lc2casp/lc2casp
	virtual uint32_t level(Lit_t lit) const {
		return value(lit) != Potassco::Value_t::Free ? solver_->level(decodeVar(lit)) : uint32_t(-1);
	}
예제 #4
0
파일: clingo.cpp 프로젝트: lc2casp/lc2casp
	virtual bool     hasLit(Lit_t lit) const { return solver_->validVar(decodeVar(lit)); }
예제 #5
0
파일: clingo.cpp 프로젝트: potassco/clasp
bool     ClingoAssignment::hasLit(Lit_t lit) const { return solver_->validVar(decodeVar(lit)); }
예제 #6
0
파일: clingo.cpp 프로젝트: potassco/clasp
uint32_t ClingoAssignment::level(Lit_t lit)  const {
	return ClingoAssignment::value(lit) != Potassco::Value_t::Free
		? solver_->level(decodeVar(lit))
		: UINT32_MAX;
}