Ejemplo n.º 1
0
PredIndex::PredIndex(Domain *dom, const TermPtrVec &terms, const VarVec &index, const VarVec &bind)
	: map_(0, ValCmp(&indexVec_, index.size()), ValCmp(&indexVec_, index.size()))
	, dom_(dom)
	, terms_(terms)
	, index_(index)
	, bind_(bind)
	, indexVec_(index.size())
	, finished_(0)
	, lastExtend_(0)
{
}
Ejemplo n.º 2
0
void ParityAggrLit::index(Grounder *g, Groundable *gr, VarSet &bound)
{
	(void)g;
	if(assign_)
	{
		VarSet vars;
		VarVec bind;
		lower_->vars(vars);
		std::set_difference(vars.begin(), vars.end(), bound.begin(), bound.end(), std::back_insert_iterator<VarVec>(bind));
		if(bind.size() > 0)
		{
			bound.insert(bind.begin(), bind.end());
			return;
		}
	}
	gr->instantiator()->append(new MatchIndex(this));
}