17 #ifndef OR_TOOLS_SAT_SUBSOLVER_H_
18 #define OR_TOOLS_SAT_SUBSOLVER_H_
29 #if !defined(__PORTABLE_PLATFORM__)
98 std::function<void()>
GenerateTask(int64_t task_id)
final {
return nullptr; }
102 std::function<void()> f_;
117 const std::vector<std::unique_ptr<SubSolver>>& subsolvers,
int num_threads);
130 const std::vector<std::unique_ptr<SubSolver>>& subsolvers,
int num_threads,
137 void SequentialLoop(
const std::vector<std::unique_ptr<SubSolver>>& subsolvers);
virtual bool TaskIsAvailable()=0
virtual std::function< void()> GenerateTask(int64_t task_id)=0
double deterministic_time_
SubSolver(const std::string &name)
virtual void Synchronize()=0
double deterministic_time() const
std::function< void()> GenerateTask(int64_t task_id) final
SynchronizationPoint(std::function< void()> f)
bool TaskIsAvailable() final
void DeterministicLoop(const std::vector< std::unique_ptr< SubSolver >> &subsolvers, int num_threads, int batch_size)
void NonDeterministicLoop(const std::vector< std::unique_ptr< SubSolver >> &subsolvers, int num_threads)
void SequentialLoop(const std::vector< std::unique_ptr< SubSolver >> &subsolvers)
Collection of objects used to extend the Constraint Solver library.