17 #ifndef OR_TOOLS_SAT_SUBSOLVER_H_
18 #define OR_TOOLS_SAT_SUBSOLVER_H_
31 #if !defined(__PORTABLE_PLATFORM__)
108 std::function<
void()> f)
117 std::function<void()> f_;
132 const std::vector<std::unique_ptr<SubSolver>>& subsolvers,
int num_threads);
145 const std::vector<std::unique_ptr<SubSolver>>& subsolvers,
int num_threads,
152 void SequentialLoop(
const std::vector<std::unique_ptr<SubSolver>>& subsolvers);
const SubsolverType type_
SubsolverType type() const
virtual bool TaskIsAvailable()=0
virtual std::function< void()> GenerateTask(int64_t task_id)=0
virtual std::string StatisticsString() const
SubSolver(const std::string &name, SubsolverType type)
double deterministic_time_
virtual void Synchronize()=0
double deterministic_time() const
std::function< void()> GenerateTask(int64_t) final
bool TaskIsAvailable() final
SynchronizationPoint(const std::string &name, std::function< void()> f)
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.