コード例 #1
0
ファイル: Symmetry.cpp プロジェクト: vonwenm/Minisatid
SymmetryPropagator::SymmetryPropagator(PCSolver* solver, const Symmetry& sym)
		: 	Propagator(DEFAULTCONSTRID, solver, "symmetry propagator"),
			symmetrical(sym.getSymmetrical()),
			inverse(sym.getInverse()),
			nextToPropagate(0) {
	getPCSolver().accept(this);
	getPCSolver().accept(this, EV_BACKTRACK);
	getPCSolver().accept(this, EV_PROPAGATE);
	for (auto litpair : symmetrical) {
		getPCSolver().accept(this, litpair.first, FAST);
		// NOTE: negation of litpair.first is always in the symmetrical-map, so no need to add it twice.
	}
}