17#ifndef OR_TOOLS_SAT_SUBSOLVER_H_
18#define OR_TOOLS_SAT_SUBSOLVER_H_
31#if !defined(__PORTABLE_PLATFORM__)
103 std::function<void()>
GenerateTask(int64_t task_id)
final {
return nullptr; }
107 std::function<void()> f_;
122 const std::vector<std::unique_ptr<SubSolver>>& subsolvers,
int num_threads);
135 const std::vector<std::unique_ptr<SubSolver>>& subsolvers,
int num_threads,
142void SequentialLoop(
const std::vector<std::unique_ptr<SubSolver>>& subsolvers);
virtual bool TaskIsAvailable()=0
virtual std::string StatisticsString() const
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
SynchronizationPoint(std::function< void()> f)
bool TaskIsAvailable() final
std::function< void()> GenerateTask(int64_t task_id) final
void DeterministicLoop(const std::vector< std::unique_ptr< SubSolver > > &subsolvers, int num_threads, int batch_size)
void SequentialLoop(const std::vector< std::unique_ptr< SubSolver > > &subsolvers)
void NonDeterministicLoop(const std::vector< std::unique_ptr< SubSolver > > &subsolvers, int num_threads)
Collection of objects used to extend the Constraint Solver library.