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