void BasicSatConfig::prepare(SharedContext& ctx) {
	uint32 warn = 0;
	for (uint32 i = 0, end = solver_.size(), mod = search_.size(); i != end; ++i) {
		warn |= solver_[i].prepare();
		warn |= search_[i%mod].prepare(solver_[i].search != SolverStrategies::no_learning);
	}
	if ((warn & 1) != 0) { ctx.report(warning(Event::subsystem_facade, "Selected heuristic requires lookback strategy!")); }
	if ((warn & 2) != 0) { ctx.report(warning(Event::subsystem_facade, "Heuristic 'Unit' implies lookahead. Using atom.")); }
}
Esempio n. 2
0
bool ProgramBuilder::startProgram(SharedContext& ctx) {
	ctx.report(message(Event::subsystem_load, "Reading"));
	ctx_    = &ctx;
	min_    = 0;
	minCon_ = 0;
	frozen_ = ctx.frozen();
	return ctx_->ok() && doStartProgram();
}