OR-Tools  9.2
bop_parameters.pb.h
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/bop/bop_parameters.proto
3 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_ortools_2fbop_2fbop_5fparameters_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_ortools_2fbop_2fbop_5fparameters_2eproto
6 
7 #include <limits>
8 #include <string>
9 
10 #include <google/protobuf/port_def.inc>
11 #if PROTOBUF_VERSION < 3019000
12 #error This file was generated by a newer version of protoc which is
13 #error incompatible with your Protocol Buffer headers. Please update
14 #error your headers.
15 #endif
16 #if 3019001 < PROTOBUF_MIN_PROTOC_VERSION
17 #error This file was generated by an older version of protoc which is
18 #error incompatible with your Protocol Buffer headers. Please
19 #error regenerate this file with a newer version of protoc.
20 #endif
21 
22 #include <google/protobuf/port_undef.inc>
23 #include <google/protobuf/io/coded_stream.h>
24 #include <google/protobuf/arena.h>
25 #include <google/protobuf/arenastring.h>
26 #include <google/protobuf/generated_message_table_driven.h>
27 #include <google/protobuf/generated_message_util.h>
28 #include <google/protobuf/metadata_lite.h>
29 #include <google/protobuf/generated_message_reflection.h>
30 #include <google/protobuf/message.h>
31 #include <google/protobuf/repeated_field.h> // IWYU pragma: export
32 #include <google/protobuf/extension_set.h> // IWYU pragma: export
33 #include <google/protobuf/generated_enum_reflection.h>
34 #include <google/protobuf/unknown_field_set.h>
35 // @@protoc_insertion_point(includes)
36 #include <google/protobuf/port_def.inc>
37 #define PROTOBUF_INTERNAL_EXPORT_ortools_2fbop_2fbop_5fparameters_2eproto
38 PROTOBUF_NAMESPACE_OPEN
39 namespace internal {
40 class AnyMetadata;
41 } // namespace internal
42 PROTOBUF_NAMESPACE_CLOSE
43 
44 // Internal implementation detail -- do not use these members.
46  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
47  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
48  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
49  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
50  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[3]
51  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
52  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
53  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
54  static const uint32_t offsets[];
55 };
56 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto;
57 namespace operations_research {
58 namespace bop {
59 class BopOptimizerMethod;
60 struct BopOptimizerMethodDefaultTypeInternal;
61 extern BopOptimizerMethodDefaultTypeInternal _BopOptimizerMethod_default_instance_;
62 class BopParameters;
63 struct BopParametersDefaultTypeInternal;
64 extern BopParametersDefaultTypeInternal _BopParameters_default_instance_;
65 class BopSolverOptimizerSet;
66 struct BopSolverOptimizerSetDefaultTypeInternal;
67 extern BopSolverOptimizerSetDefaultTypeInternal _BopSolverOptimizerSet_default_instance_;
68 } // namespace bop
69 } // namespace operations_research
70 PROTOBUF_NAMESPACE_OPEN
71 template<> ::operations_research::bop::BopOptimizerMethod* Arena::CreateMaybeMessage<::operations_research::bop::BopOptimizerMethod>(Arena*);
72 template<> ::operations_research::bop::BopParameters* Arena::CreateMaybeMessage<::operations_research::bop::BopParameters>(Arena*);
73 template<> ::operations_research::bop::BopSolverOptimizerSet* Arena::CreateMaybeMessage<::operations_research::bop::BopSolverOptimizerSet>(Arena*);
74 PROTOBUF_NAMESPACE_CLOSE
75 namespace operations_research {
76 namespace bop {
77 
94 };
99 
100 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BopOptimizerMethod_OptimizerType_descriptor();
101 template<typename T>
102 inline const std::string& BopOptimizerMethod_OptimizerType_Name(T enum_t_value) {
105  "Incorrect type passed to function BopOptimizerMethod_OptimizerType_Name.");
106  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
108 }
110  ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, BopOptimizerMethod_OptimizerType* value) {
111  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<BopOptimizerMethod_OptimizerType>(
113 }
118 };
123 
124 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BopParameters_ThreadSynchronizationType_descriptor();
125 template<typename T>
126 inline const std::string& BopParameters_ThreadSynchronizationType_Name(T enum_t_value) {
129  "Incorrect type passed to function BopParameters_ThreadSynchronizationType_Name.");
130  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
132 }
134  ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, BopParameters_ThreadSynchronizationType* value) {
135  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<BopParameters_ThreadSynchronizationType>(
137 }
138 // ===================================================================
139 
140 class BopOptimizerMethod final :
141  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.bop.BopOptimizerMethod) */ {
142  public:
143  inline BopOptimizerMethod() : BopOptimizerMethod(nullptr) {}
144  ~BopOptimizerMethod() override;
145  explicit constexpr BopOptimizerMethod(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
146 
149  : BopOptimizerMethod() {
150  *this = ::std::move(from);
151  }
152 
154  CopyFrom(from);
155  return *this;
156  }
158  if (this == &from) return *this;
159  if (GetOwningArena() == from.GetOwningArena()
160  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
161  && GetOwningArena() != nullptr
162  #endif // !PROTOBUF_FORCE_COPY_IN_MOVE
163  ) {
164  InternalSwap(&from);
165  } else {
166  CopyFrom(from);
167  }
168  return *this;
169  }
170 
171  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
172  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
173  }
174  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
175  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
176  }
177 
178  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
179  return GetDescriptor();
180  }
181  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
182  return default_instance().GetMetadata().descriptor;
183  }
184  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
185  return default_instance().GetMetadata().reflection;
186  }
188  return *internal_default_instance();
189  }
191  return reinterpret_cast<const BopOptimizerMethod*>(
193  }
194  static constexpr int kIndexInFileMessages =
195  0;
196 
198  a.Swap(&b);
199  }
200  inline void Swap(BopOptimizerMethod* other) {
201  if (other == this) return;
202  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
203  if (GetOwningArena() != nullptr &&
204  GetOwningArena() == other->GetOwningArena()) {
205  #else // PROTOBUF_FORCE_COPY_IN_SWAP
206  if (GetOwningArena() == other->GetOwningArena()) {
207  #endif // !PROTOBUF_FORCE_COPY_IN_SWAP
208  InternalSwap(other);
209  } else {
210  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
211  }
212  }
214  if (other == this) return;
215  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
216  InternalSwap(other);
217  }
218 
219  // implements Message ----------------------------------------------
220 
221  BopOptimizerMethod* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
222  return CreateMaybeMessage<BopOptimizerMethod>(arena);
223  }
224  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
225  void CopyFrom(const BopOptimizerMethod& from);
226  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
227  void MergeFrom(const BopOptimizerMethod& from);
228  private:
229  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
230  public:
231  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
232  bool IsInitialized() const final;
233 
234  size_t ByteSizeLong() const final;
235  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
236  uint8_t* _InternalSerialize(
237  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
238  int GetCachedSize() const final { return _cached_size_.Get(); }
239 
240  private:
241  void SharedCtor();
242  void SharedDtor();
243  void SetCachedSize(int size) const final;
244  void InternalSwap(BopOptimizerMethod* other);
245 
246  private:
247  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
248  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
249  return "operations_research.bop.BopOptimizerMethod";
250  }
251  protected:
252  explicit BopOptimizerMethod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
253  bool is_message_owned = false);
254  private:
255  static void ArenaDtor(void* object);
256  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
257  public:
258 
259  static const ClassData _class_data_;
260  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
261 
262  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
263 
264  // nested types ----------------------------------------------------
265 
267  static constexpr OptimizerType SAT_CORE_BASED =
269  static constexpr OptimizerType SAT_LINEAR_SEARCH =
271  static constexpr OptimizerType LINEAR_RELAXATION =
273  static constexpr OptimizerType LOCAL_SEARCH =
281  static constexpr OptimizerType COMPLETE_LNS =
283  static constexpr OptimizerType LP_FIRST_SOLUTION =
297  static inline bool OptimizerType_IsValid(int value) {
299  }
300  static constexpr OptimizerType OptimizerType_MIN =
302  static constexpr OptimizerType OptimizerType_MAX =
304  static constexpr int OptimizerType_ARRAYSIZE =
306  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
309  }
310  template<typename T>
311  static inline const std::string& OptimizerType_Name(T enum_t_value) {
312  static_assert(::std::is_same<T, OptimizerType>::value ||
314  "Incorrect type passed to function OptimizerType_Name.");
315  return BopOptimizerMethod_OptimizerType_Name(enum_t_value);
316  }
317  static inline bool OptimizerType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
318  OptimizerType* value) {
320  }
321 
322  // accessors -------------------------------------------------------
323 
324  enum : int {
326  };
327  // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
328  bool has_type() const;
329  private:
330  bool _internal_has_type() const;
331  public:
332  void clear_type();
335  private:
338  public:
339 
340  // @@protoc_insertion_point(class_scope:operations_research.bop.BopOptimizerMethod)
341  private:
342  class _Internal;
343 
344  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
345  typedef void InternalArenaConstructable_;
346  typedef void DestructorSkippable_;
347  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
348  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
349  int type_;
350  friend struct ::TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto;
351 };
352 // -------------------------------------------------------------------
353 
355  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.bop.BopSolverOptimizerSet) */ {
356  public:
358  ~BopSolverOptimizerSet() override;
359  explicit constexpr BopSolverOptimizerSet(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
360 
364  *this = ::std::move(from);
365  }
366 
368  CopyFrom(from);
369  return *this;
370  }
372  if (this == &from) return *this;
373  if (GetOwningArena() == from.GetOwningArena()
374  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
375  && GetOwningArena() != nullptr
376  #endif // !PROTOBUF_FORCE_COPY_IN_MOVE
377  ) {
378  InternalSwap(&from);
379  } else {
380  CopyFrom(from);
381  }
382  return *this;
383  }
384 
385  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
386  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
387  }
388  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
389  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
390  }
391 
392  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
393  return GetDescriptor();
394  }
395  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
396  return default_instance().GetMetadata().descriptor;
397  }
398  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
399  return default_instance().GetMetadata().reflection;
400  }
402  return *internal_default_instance();
403  }
405  return reinterpret_cast<const BopSolverOptimizerSet*>(
407  }
408  static constexpr int kIndexInFileMessages =
409  1;
410 
412  a.Swap(&b);
413  }
414  inline void Swap(BopSolverOptimizerSet* other) {
415  if (other == this) return;
416  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
417  if (GetOwningArena() != nullptr &&
418  GetOwningArena() == other->GetOwningArena()) {
419  #else // PROTOBUF_FORCE_COPY_IN_SWAP
420  if (GetOwningArena() == other->GetOwningArena()) {
421  #endif // !PROTOBUF_FORCE_COPY_IN_SWAP
422  InternalSwap(other);
423  } else {
424  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
425  }
426  }
428  if (other == this) return;
429  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
430  InternalSwap(other);
431  }
432 
433  // implements Message ----------------------------------------------
434 
435  BopSolverOptimizerSet* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
436  return CreateMaybeMessage<BopSolverOptimizerSet>(arena);
437  }
438  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
439  void CopyFrom(const BopSolverOptimizerSet& from);
440  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
441  void MergeFrom(const BopSolverOptimizerSet& from);
442  private:
443  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
444  public:
445  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
446  bool IsInitialized() const final;
447 
448  size_t ByteSizeLong() const final;
449  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
450  uint8_t* _InternalSerialize(
451  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
452  int GetCachedSize() const final { return _cached_size_.Get(); }
453 
454  private:
455  void SharedCtor();
456  void SharedDtor();
457  void SetCachedSize(int size) const final;
458  void InternalSwap(BopSolverOptimizerSet* other);
459 
460  private:
461  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
462  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
463  return "operations_research.bop.BopSolverOptimizerSet";
464  }
465  protected:
466  explicit BopSolverOptimizerSet(::PROTOBUF_NAMESPACE_ID::Arena* arena,
467  bool is_message_owned = false);
468  private:
469  static void ArenaDtor(void* object);
470  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
471  public:
472 
473  static const ClassData _class_data_;
474  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
475 
476  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
477 
478  // nested types ----------------------------------------------------
479 
480  // accessors -------------------------------------------------------
481 
482  enum : int {
483  kMethodsFieldNumber = 1,
484  };
485  // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
486  int methods_size() const;
487  private:
488  int _internal_methods_size() const;
489  public:
490  void clear_methods();
492  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopOptimizerMethod >*
493  mutable_methods();
494  private:
495  const ::operations_research::bop::BopOptimizerMethod& _internal_methods(int index) const;
496  ::operations_research::bop::BopOptimizerMethod* _internal_add_methods();
497  public:
498  const ::operations_research::bop::BopOptimizerMethod& methods(int index) const;
500  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopOptimizerMethod >&
501  methods() const;
502 
503  // @@protoc_insertion_point(class_scope:operations_research.bop.BopSolverOptimizerSet)
504  private:
505  class _Internal;
506 
507  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
508  typedef void InternalArenaConstructable_;
509  typedef void DestructorSkippable_;
510  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopOptimizerMethod > methods_;
511  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
512  friend struct ::TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto;
513 };
514 // -------------------------------------------------------------------
515 
516 class BopParameters final :
517  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.bop.BopParameters) */ {
518  public:
519  inline BopParameters() : BopParameters(nullptr) {}
520  ~BopParameters() override;
521  explicit constexpr BopParameters(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
522 
523  BopParameters(const BopParameters& from);
524  BopParameters(BopParameters&& from) noexcept
525  : BopParameters() {
526  *this = ::std::move(from);
527  }
528 
529  inline BopParameters& operator=(const BopParameters& from) {
530  CopyFrom(from);
531  return *this;
532  }
533  inline BopParameters& operator=(BopParameters&& from) noexcept {
534  if (this == &from) return *this;
535  if (GetOwningArena() == from.GetOwningArena()
536  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
537  && GetOwningArena() != nullptr
538  #endif // !PROTOBUF_FORCE_COPY_IN_MOVE
539  ) {
540  InternalSwap(&from);
541  } else {
542  CopyFrom(from);
543  }
544  return *this;
545  }
546 
547  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
548  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
549  }
550  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
551  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
552  }
553 
554  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
555  return GetDescriptor();
556  }
557  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
558  return default_instance().GetMetadata().descriptor;
559  }
560  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
561  return default_instance().GetMetadata().reflection;
562  }
563  static const BopParameters& default_instance() {
564  return *internal_default_instance();
565  }
566  static inline const BopParameters* internal_default_instance() {
567  return reinterpret_cast<const BopParameters*>(
569  }
570  static constexpr int kIndexInFileMessages =
571  2;
572 
573  friend void swap(BopParameters& a, BopParameters& b) {
574  a.Swap(&b);
575  }
576  inline void Swap(BopParameters* other) {
577  if (other == this) return;
578  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
579  if (GetOwningArena() != nullptr &&
580  GetOwningArena() == other->GetOwningArena()) {
581  #else // PROTOBUF_FORCE_COPY_IN_SWAP
582  if (GetOwningArena() == other->GetOwningArena()) {
583  #endif // !PROTOBUF_FORCE_COPY_IN_SWAP
584  InternalSwap(other);
585  } else {
586  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
587  }
588  }
590  if (other == this) return;
591  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
592  InternalSwap(other);
593  }
594 
595  // implements Message ----------------------------------------------
596 
597  BopParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
598  return CreateMaybeMessage<BopParameters>(arena);
599  }
600  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
601  void CopyFrom(const BopParameters& from);
602  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
603  void MergeFrom(const BopParameters& from);
604  private:
605  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
606  public:
607  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
608  bool IsInitialized() const final;
609 
610  size_t ByteSizeLong() const final;
611  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
612  uint8_t* _InternalSerialize(
613  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
614  int GetCachedSize() const final { return _cached_size_.Get(); }
615 
616  private:
617  void SharedCtor();
618  void SharedDtor();
619  void SetCachedSize(int size) const final;
620  void InternalSwap(BopParameters* other);
621 
622  private:
623  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
624  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
625  return "operations_research.bop.BopParameters";
626  }
627  protected:
628  explicit BopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
629  bool is_message_owned = false);
630  private:
631  static void ArenaDtor(void* object);
632  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
633  public:
634 
635  static const ClassData _class_data_;
636  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
637 
638  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
639 
640  // nested types ----------------------------------------------------
641 
643  static constexpr ThreadSynchronizationType NO_SYNCHRONIZATION =
645  static constexpr ThreadSynchronizationType SYNCHRONIZE_ALL =
647  static constexpr ThreadSynchronizationType SYNCHRONIZE_ON_RIGHT =
649  static inline bool ThreadSynchronizationType_IsValid(int value) {
651  }
652  static constexpr ThreadSynchronizationType ThreadSynchronizationType_MIN =
654  static constexpr ThreadSynchronizationType ThreadSynchronizationType_MAX =
656  static constexpr int ThreadSynchronizationType_ARRAYSIZE =
658  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
661  }
662  template<typename T>
663  static inline const std::string& ThreadSynchronizationType_Name(T enum_t_value) {
666  "Incorrect type passed to function ThreadSynchronizationType_Name.");
668  }
669  static inline bool ThreadSynchronizationType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
672  }
673 
674  // accessors -------------------------------------------------------
675 
676  enum : int {
677  kSolverOptimizerSetsFieldNumber = 26,
678  kDefaultSolverOptimizerSetsFieldNumber = 33,
679  kLogSearchProgressFieldNumber = 14,
680  kPruneSearchTreeFieldNumber = 4,
681  kSortConstraintsByNumTermsFieldNumber = 5,
682  kUseSymmetryFieldNumber = 17,
683  kSynchronizationTypeFieldNumber = 25,
684  kMaxNumberOfConsecutiveFailingOptimizerCallsFieldNumber = 35,
685  kExploitSymmetryInSatFirstSolutionFieldNumber = 40,
686  kUsePotentialOneFlipRepairsInLsFieldNumber = 39,
687  kUseLpStrongBranchingFieldNumber = 29,
688  kDecomposedProblemMinTimeInSecondsFieldNumber = 36,
689  kMaxLpSolveForFeasibilityProblemsFieldNumber = 41,
690  kMaxTimeInSecondsFieldNumber = 1,
691  kMaxNumDecisionsInLsFieldNumber = 2,
692  kRandomSeedFieldNumber = 7,
693  kNumRelaxedVarsFieldNumber = 8,
694  kMaxNumberOfConflictsInRandomLnsFieldNumber = 9,
695  kComputeEstimatedImpactFieldNumber = 3,
696  kUseRandomLnsFieldNumber = 6,
697  kUseLpLnsFieldNumber = 12,
698  kUseSatToChooseLnsNeighbourhoodFieldNumber = 15,
699  kNumRandomLnsTriesFieldNumber = 10,
700  kMaxNumberOfBacktracksInLsFieldNumber = 11,
701  kMaxNumberOfConflictsForQuickCheckFieldNumber = 16,
702  kMaxNumberOfConflictsInRandomSolutionGenerationFieldNumber = 20,
703  kMaxNumberOfExploredAssignmentsPerTryInLsFieldNumber = 21,
704  kUseTranspositionTableInLsFieldNumber = 22,
705  kUseLearnedBinaryClausesInLpFieldNumber = 23,
706  kNumberOfSolversFieldNumber = 24,
707  kMaxDeterministicTimeFieldNumber = 27,
708  kRelativeGapLimitFieldNumber = 28,
709  kDecomposerNumVariablesThresholdFieldNumber = 30,
710  kNumBopSolversUsedByDecompositionFieldNumber = 31,
711  kGuidedSatConflictsChunkFieldNumber = 34,
712  kMaxNumBrokenConstraintsInLsFieldNumber = 38,
713  kLpMaxDeterministicTimeFieldNumber = 37,
714  };
715  // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
716  int solver_optimizer_sets_size() const;
717  private:
718  int _internal_solver_optimizer_sets_size() const;
719  public:
720  void clear_solver_optimizer_sets();
721  ::operations_research::bop::BopSolverOptimizerSet* mutable_solver_optimizer_sets(int index);
722  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopSolverOptimizerSet >*
723  mutable_solver_optimizer_sets();
724  private:
725  const ::operations_research::bop::BopSolverOptimizerSet& _internal_solver_optimizer_sets(int index) const;
726  ::operations_research::bop::BopSolverOptimizerSet* _internal_add_solver_optimizer_sets();
727  public:
728  const ::operations_research::bop::BopSolverOptimizerSet& solver_optimizer_sets(int index) const;
729  ::operations_research::bop::BopSolverOptimizerSet* add_solver_optimizer_sets();
730  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopSolverOptimizerSet >&
731  solver_optimizer_sets() const;
732 
733  // optional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];
734  bool has_default_solver_optimizer_sets() const;
735  private:
736  bool _internal_has_default_solver_optimizer_sets() const;
737  public:
738  void clear_default_solver_optimizer_sets();
739  const std::string& default_solver_optimizer_sets() const;
740  template <typename ArgT0 = const std::string&, typename... ArgT>
741  void set_default_solver_optimizer_sets(ArgT0&& arg0, ArgT... args);
742  std::string* mutable_default_solver_optimizer_sets();
743  PROTOBUF_NODISCARD std::string* release_default_solver_optimizer_sets();
744  void set_allocated_default_solver_optimizer_sets(std::string* default_solver_optimizer_sets);
745  private:
746  const std::string& _internal_default_solver_optimizer_sets() const;
747  inline PROTOBUF_ALWAYS_INLINE void _internal_set_default_solver_optimizer_sets(const std::string& value);
748  std::string* _internal_mutable_default_solver_optimizer_sets();
749  public:
750 
751  // optional bool log_search_progress = 14 [default = false];
752  bool has_log_search_progress() const;
753  private:
754  bool _internal_has_log_search_progress() const;
755  public:
756  void clear_log_search_progress();
757  bool log_search_progress() const;
758  void set_log_search_progress(bool value);
759  private:
760  bool _internal_log_search_progress() const;
761  void _internal_set_log_search_progress(bool value);
762  public:
763 
764  // optional bool prune_search_tree = 4 [default = false];
765  bool has_prune_search_tree() const;
766  private:
767  bool _internal_has_prune_search_tree() const;
768  public:
769  void clear_prune_search_tree();
770  bool prune_search_tree() const;
771  void set_prune_search_tree(bool value);
772  private:
773  bool _internal_prune_search_tree() const;
774  void _internal_set_prune_search_tree(bool value);
775  public:
776 
777  // optional bool sort_constraints_by_num_terms = 5 [default = false];
778  bool has_sort_constraints_by_num_terms() const;
779  private:
780  bool _internal_has_sort_constraints_by_num_terms() const;
781  public:
782  void clear_sort_constraints_by_num_terms();
783  bool sort_constraints_by_num_terms() const;
784  void set_sort_constraints_by_num_terms(bool value);
785  private:
786  bool _internal_sort_constraints_by_num_terms() const;
787  void _internal_set_sort_constraints_by_num_terms(bool value);
788  public:
789 
790  // optional bool use_symmetry = 17 [default = false];
791  bool has_use_symmetry() const;
792  private:
793  bool _internal_has_use_symmetry() const;
794  public:
795  void clear_use_symmetry();
796  bool use_symmetry() const;
797  void set_use_symmetry(bool value);
798  private:
799  bool _internal_use_symmetry() const;
800  void _internal_set_use_symmetry(bool value);
801  public:
802 
803  // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
804  bool has_synchronization_type() const;
805  private:
806  bool _internal_has_synchronization_type() const;
807  public:
808  void clear_synchronization_type();
811  private:
812  ::operations_research::bop::BopParameters_ThreadSynchronizationType _internal_synchronization_type() const;
813  void _internal_set_synchronization_type(::operations_research::bop::BopParameters_ThreadSynchronizationType value);
814  public:
815 
816  // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
817  bool has_max_number_of_consecutive_failing_optimizer_calls() const;
818  private:
819  bool _internal_has_max_number_of_consecutive_failing_optimizer_calls() const;
820  public:
821  void clear_max_number_of_consecutive_failing_optimizer_calls();
822  int32_t max_number_of_consecutive_failing_optimizer_calls() const;
823  void set_max_number_of_consecutive_failing_optimizer_calls(int32_t value);
824  private:
825  int32_t _internal_max_number_of_consecutive_failing_optimizer_calls() const;
826  void _internal_set_max_number_of_consecutive_failing_optimizer_calls(int32_t value);
827  public:
828 
829  // optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];
830  bool has_exploit_symmetry_in_sat_first_solution() const;
831  private:
832  bool _internal_has_exploit_symmetry_in_sat_first_solution() const;
833  public:
834  void clear_exploit_symmetry_in_sat_first_solution();
835  bool exploit_symmetry_in_sat_first_solution() const;
836  void set_exploit_symmetry_in_sat_first_solution(bool value);
837  private:
838  bool _internal_exploit_symmetry_in_sat_first_solution() const;
839  void _internal_set_exploit_symmetry_in_sat_first_solution(bool value);
840  public:
841 
842  // optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];
843  bool has_use_potential_one_flip_repairs_in_ls() const;
844  private:
845  bool _internal_has_use_potential_one_flip_repairs_in_ls() const;
846  public:
847  void clear_use_potential_one_flip_repairs_in_ls();
848  bool use_potential_one_flip_repairs_in_ls() const;
849  void set_use_potential_one_flip_repairs_in_ls(bool value);
850  private:
851  bool _internal_use_potential_one_flip_repairs_in_ls() const;
852  void _internal_set_use_potential_one_flip_repairs_in_ls(bool value);
853  public:
854 
855  // optional bool use_lp_strong_branching = 29 [default = false];
856  bool has_use_lp_strong_branching() const;
857  private:
858  bool _internal_has_use_lp_strong_branching() const;
859  public:
860  void clear_use_lp_strong_branching();
861  bool use_lp_strong_branching() const;
862  void set_use_lp_strong_branching(bool value);
863  private:
864  bool _internal_use_lp_strong_branching() const;
865  void _internal_set_use_lp_strong_branching(bool value);
866  public:
867 
868  // optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];
869  bool has_decomposed_problem_min_time_in_seconds() const;
870  private:
871  bool _internal_has_decomposed_problem_min_time_in_seconds() const;
872  public:
873  void clear_decomposed_problem_min_time_in_seconds();
874  double decomposed_problem_min_time_in_seconds() const;
875  void set_decomposed_problem_min_time_in_seconds(double value);
876  private:
877  double _internal_decomposed_problem_min_time_in_seconds() const;
878  void _internal_set_decomposed_problem_min_time_in_seconds(double value);
879  public:
880 
881  // optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];
882  bool has_max_lp_solve_for_feasibility_problems() const;
883  private:
884  bool _internal_has_max_lp_solve_for_feasibility_problems() const;
885  public:
886  void clear_max_lp_solve_for_feasibility_problems();
887  int32_t max_lp_solve_for_feasibility_problems() const;
888  void set_max_lp_solve_for_feasibility_problems(int32_t value);
889  private:
890  int32_t _internal_max_lp_solve_for_feasibility_problems() const;
891  void _internal_set_max_lp_solve_for_feasibility_problems(int32_t value);
892  public:
893 
894  // optional double max_time_in_seconds = 1 [default = inf];
895  bool has_max_time_in_seconds() const;
896  private:
897  bool _internal_has_max_time_in_seconds() const;
898  public:
899  void clear_max_time_in_seconds();
900  double max_time_in_seconds() const;
901  void set_max_time_in_seconds(double value);
902  private:
903  double _internal_max_time_in_seconds() const;
904  void _internal_set_max_time_in_seconds(double value);
905  public:
906 
907  // optional int32 max_num_decisions_in_ls = 2 [default = 4];
908  bool has_max_num_decisions_in_ls() const;
909  private:
910  bool _internal_has_max_num_decisions_in_ls() const;
911  public:
912  void clear_max_num_decisions_in_ls();
913  int32_t max_num_decisions_in_ls() const;
914  void set_max_num_decisions_in_ls(int32_t value);
915  private:
916  int32_t _internal_max_num_decisions_in_ls() const;
917  void _internal_set_max_num_decisions_in_ls(int32_t value);
918  public:
919 
920  // optional int32 random_seed = 7 [default = 8];
921  bool has_random_seed() const;
922  private:
923  bool _internal_has_random_seed() const;
924  public:
925  void clear_random_seed();
926  int32_t random_seed() const;
927  void set_random_seed(int32_t value);
928  private:
929  int32_t _internal_random_seed() const;
930  void _internal_set_random_seed(int32_t value);
931  public:
932 
933  // optional int32 num_relaxed_vars = 8 [default = 10];
934  bool has_num_relaxed_vars() const;
935  private:
936  bool _internal_has_num_relaxed_vars() const;
937  public:
938  void clear_num_relaxed_vars();
939  int32_t num_relaxed_vars() const;
940  void set_num_relaxed_vars(int32_t value);
941  private:
942  int32_t _internal_num_relaxed_vars() const;
943  void _internal_set_num_relaxed_vars(int32_t value);
944  public:
945 
946  // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
947  bool has_max_number_of_conflicts_in_random_lns() const;
948  private:
949  bool _internal_has_max_number_of_conflicts_in_random_lns() const;
950  public:
951  void clear_max_number_of_conflicts_in_random_lns();
952  int32_t max_number_of_conflicts_in_random_lns() const;
953  void set_max_number_of_conflicts_in_random_lns(int32_t value);
954  private:
955  int32_t _internal_max_number_of_conflicts_in_random_lns() const;
956  void _internal_set_max_number_of_conflicts_in_random_lns(int32_t value);
957  public:
958 
959  // optional bool compute_estimated_impact = 3 [default = true];
960  bool has_compute_estimated_impact() const;
961  private:
962  bool _internal_has_compute_estimated_impact() const;
963  public:
964  void clear_compute_estimated_impact();
965  bool compute_estimated_impact() const;
966  void set_compute_estimated_impact(bool value);
967  private:
968  bool _internal_compute_estimated_impact() const;
969  void _internal_set_compute_estimated_impact(bool value);
970  public:
971 
972  // optional bool use_random_lns = 6 [default = true];
973  bool has_use_random_lns() const;
974  private:
975  bool _internal_has_use_random_lns() const;
976  public:
977  void clear_use_random_lns();
978  bool use_random_lns() const;
979  void set_use_random_lns(bool value);
980  private:
981  bool _internal_use_random_lns() const;
982  void _internal_set_use_random_lns(bool value);
983  public:
984 
985  // optional bool use_lp_lns = 12 [default = true];
986  bool has_use_lp_lns() const;
987  private:
988  bool _internal_has_use_lp_lns() const;
989  public:
990  void clear_use_lp_lns();
991  bool use_lp_lns() const;
992  void set_use_lp_lns(bool value);
993  private:
994  bool _internal_use_lp_lns() const;
995  void _internal_set_use_lp_lns(bool value);
996  public:
997 
998  // optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];
999  bool has_use_sat_to_choose_lns_neighbourhood() const;
1000  private:
1001  bool _internal_has_use_sat_to_choose_lns_neighbourhood() const;
1002  public:
1003  void clear_use_sat_to_choose_lns_neighbourhood();
1004  bool use_sat_to_choose_lns_neighbourhood() const;
1005  void set_use_sat_to_choose_lns_neighbourhood(bool value);
1006  private:
1007  bool _internal_use_sat_to_choose_lns_neighbourhood() const;
1008  void _internal_set_use_sat_to_choose_lns_neighbourhood(bool value);
1009  public:
1010 
1011  // optional int32 num_random_lns_tries = 10 [default = 1];
1012  bool has_num_random_lns_tries() const;
1013  private:
1014  bool _internal_has_num_random_lns_tries() const;
1015  public:
1016  void clear_num_random_lns_tries();
1017  int32_t num_random_lns_tries() const;
1018  void set_num_random_lns_tries(int32_t value);
1019  private:
1020  int32_t _internal_num_random_lns_tries() const;
1021  void _internal_set_num_random_lns_tries(int32_t value);
1022  public:
1023 
1024  // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1025  bool has_max_number_of_backtracks_in_ls() const;
1026  private:
1027  bool _internal_has_max_number_of_backtracks_in_ls() const;
1028  public:
1029  void clear_max_number_of_backtracks_in_ls();
1030  int64_t max_number_of_backtracks_in_ls() const;
1031  void set_max_number_of_backtracks_in_ls(int64_t value);
1032  private:
1033  int64_t _internal_max_number_of_backtracks_in_ls() const;
1034  void _internal_set_max_number_of_backtracks_in_ls(int64_t value);
1035  public:
1036 
1037  // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1038  bool has_max_number_of_conflicts_for_quick_check() const;
1039  private:
1040  bool _internal_has_max_number_of_conflicts_for_quick_check() const;
1041  public:
1042  void clear_max_number_of_conflicts_for_quick_check();
1043  int32_t max_number_of_conflicts_for_quick_check() const;
1044  void set_max_number_of_conflicts_for_quick_check(int32_t value);
1045  private:
1046  int32_t _internal_max_number_of_conflicts_for_quick_check() const;
1047  void _internal_set_max_number_of_conflicts_for_quick_check(int32_t value);
1048  public:
1049 
1050  // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1051  bool has_max_number_of_conflicts_in_random_solution_generation() const;
1052  private:
1053  bool _internal_has_max_number_of_conflicts_in_random_solution_generation() const;
1054  public:
1055  void clear_max_number_of_conflicts_in_random_solution_generation();
1056  int32_t max_number_of_conflicts_in_random_solution_generation() const;
1057  void set_max_number_of_conflicts_in_random_solution_generation(int32_t value);
1058  private:
1059  int32_t _internal_max_number_of_conflicts_in_random_solution_generation() const;
1060  void _internal_set_max_number_of_conflicts_in_random_solution_generation(int32_t value);
1061  public:
1062 
1063  // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1064  bool has_max_number_of_explored_assignments_per_try_in_ls() const;
1065  private:
1066  bool _internal_has_max_number_of_explored_assignments_per_try_in_ls() const;
1067  public:
1068  void clear_max_number_of_explored_assignments_per_try_in_ls();
1069  int64_t max_number_of_explored_assignments_per_try_in_ls() const;
1070  void set_max_number_of_explored_assignments_per_try_in_ls(int64_t value);
1071  private:
1072  int64_t _internal_max_number_of_explored_assignments_per_try_in_ls() const;
1073  void _internal_set_max_number_of_explored_assignments_per_try_in_ls(int64_t value);
1074  public:
1075 
1076  // optional bool use_transposition_table_in_ls = 22 [default = true];
1077  bool has_use_transposition_table_in_ls() const;
1078  private:
1079  bool _internal_has_use_transposition_table_in_ls() const;
1080  public:
1081  void clear_use_transposition_table_in_ls();
1082  bool use_transposition_table_in_ls() const;
1083  void set_use_transposition_table_in_ls(bool value);
1084  private:
1085  bool _internal_use_transposition_table_in_ls() const;
1086  void _internal_set_use_transposition_table_in_ls(bool value);
1087  public:
1088 
1089  // optional bool use_learned_binary_clauses_in_lp = 23 [default = true];
1090  bool has_use_learned_binary_clauses_in_lp() const;
1091  private:
1092  bool _internal_has_use_learned_binary_clauses_in_lp() const;
1093  public:
1094  void clear_use_learned_binary_clauses_in_lp();
1095  bool use_learned_binary_clauses_in_lp() const;
1096  void set_use_learned_binary_clauses_in_lp(bool value);
1097  private:
1098  bool _internal_use_learned_binary_clauses_in_lp() const;
1099  void _internal_set_use_learned_binary_clauses_in_lp(bool value);
1100  public:
1101 
1102  // optional int32 number_of_solvers = 24 [default = 1];
1103  bool has_number_of_solvers() const;
1104  private:
1105  bool _internal_has_number_of_solvers() const;
1106  public:
1107  void clear_number_of_solvers();
1108  int32_t number_of_solvers() const;
1109  void set_number_of_solvers(int32_t value);
1110  private:
1111  int32_t _internal_number_of_solvers() const;
1112  void _internal_set_number_of_solvers(int32_t value);
1113  public:
1114 
1115  // optional double max_deterministic_time = 27 [default = inf];
1116  bool has_max_deterministic_time() const;
1117  private:
1118  bool _internal_has_max_deterministic_time() const;
1119  public:
1120  void clear_max_deterministic_time();
1121  double max_deterministic_time() const;
1122  void set_max_deterministic_time(double value);
1123  private:
1124  double _internal_max_deterministic_time() const;
1125  void _internal_set_max_deterministic_time(double value);
1126  public:
1127 
1128  // optional double relative_gap_limit = 28 [default = 0.0001];
1129  bool has_relative_gap_limit() const;
1130  private:
1131  bool _internal_has_relative_gap_limit() const;
1132  public:
1133  void clear_relative_gap_limit();
1134  double relative_gap_limit() const;
1135  void set_relative_gap_limit(double value);
1136  private:
1137  double _internal_relative_gap_limit() const;
1138  void _internal_set_relative_gap_limit(double value);
1139  public:
1140 
1141  // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
1142  bool has_decomposer_num_variables_threshold() const;
1143  private:
1144  bool _internal_has_decomposer_num_variables_threshold() const;
1145  public:
1146  void clear_decomposer_num_variables_threshold();
1147  int32_t decomposer_num_variables_threshold() const;
1148  void set_decomposer_num_variables_threshold(int32_t value);
1149  private:
1150  int32_t _internal_decomposer_num_variables_threshold() const;
1151  void _internal_set_decomposer_num_variables_threshold(int32_t value);
1152  public:
1153 
1154  // optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];
1155  bool has_num_bop_solvers_used_by_decomposition() const;
1156  private:
1157  bool _internal_has_num_bop_solvers_used_by_decomposition() const;
1158  public:
1159  void clear_num_bop_solvers_used_by_decomposition();
1160  int32_t num_bop_solvers_used_by_decomposition() const;
1161  void set_num_bop_solvers_used_by_decomposition(int32_t value);
1162  private:
1163  int32_t _internal_num_bop_solvers_used_by_decomposition() const;
1164  void _internal_set_num_bop_solvers_used_by_decomposition(int32_t value);
1165  public:
1166 
1167  // optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];
1168  bool has_guided_sat_conflicts_chunk() const;
1169  private:
1170  bool _internal_has_guided_sat_conflicts_chunk() const;
1171  public:
1172  void clear_guided_sat_conflicts_chunk();
1173  int32_t guided_sat_conflicts_chunk() const;
1174  void set_guided_sat_conflicts_chunk(int32_t value);
1175  private:
1176  int32_t _internal_guided_sat_conflicts_chunk() const;
1177  void _internal_set_guided_sat_conflicts_chunk(int32_t value);
1178  public:
1179 
1180  // optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];
1181  bool has_max_num_broken_constraints_in_ls() const;
1182  private:
1183  bool _internal_has_max_num_broken_constraints_in_ls() const;
1184  public:
1185  void clear_max_num_broken_constraints_in_ls();
1186  int32_t max_num_broken_constraints_in_ls() const;
1187  void set_max_num_broken_constraints_in_ls(int32_t value);
1188  private:
1189  int32_t _internal_max_num_broken_constraints_in_ls() const;
1190  void _internal_set_max_num_broken_constraints_in_ls(int32_t value);
1191  public:
1192 
1193  // optional double lp_max_deterministic_time = 37 [default = 1];
1194  bool has_lp_max_deterministic_time() const;
1195  private:
1196  bool _internal_has_lp_max_deterministic_time() const;
1197  public:
1198  void clear_lp_max_deterministic_time();
1199  double lp_max_deterministic_time() const;
1200  void set_lp_max_deterministic_time(double value);
1201  private:
1202  double _internal_lp_max_deterministic_time() const;
1203  void _internal_set_lp_max_deterministic_time(double value);
1204  public:
1205 
1206  // @@protoc_insertion_point(class_scope:operations_research.bop.BopParameters)
1207  private:
1208  class _Internal;
1209 
1210  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1211  typedef void InternalArenaConstructable_;
1212  typedef void DestructorSkippable_;
1213  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<2> _has_bits_;
1214  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1215  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopSolverOptimizerSet > solver_optimizer_sets_;
1216  static const ::PROTOBUF_NAMESPACE_ID::internal::LazyString _i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_;
1217  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr default_solver_optimizer_sets_;
1218  bool log_search_progress_;
1219  bool prune_search_tree_;
1220  bool sort_constraints_by_num_terms_;
1221  bool use_symmetry_;
1222  int synchronization_type_;
1223  int32_t max_number_of_consecutive_failing_optimizer_calls_;
1224  bool exploit_symmetry_in_sat_first_solution_;
1225  bool use_potential_one_flip_repairs_in_ls_;
1226  bool use_lp_strong_branching_;
1227  double decomposed_problem_min_time_in_seconds_;
1228  int32_t max_lp_solve_for_feasibility_problems_;
1229  double max_time_in_seconds_;
1230  int32_t max_num_decisions_in_ls_;
1231  int32_t random_seed_;
1232  int32_t num_relaxed_vars_;
1233  int32_t max_number_of_conflicts_in_random_lns_;
1234  bool compute_estimated_impact_;
1235  bool use_random_lns_;
1236  bool use_lp_lns_;
1237  bool use_sat_to_choose_lns_neighbourhood_;
1238  int32_t num_random_lns_tries_;
1239  int64_t max_number_of_backtracks_in_ls_;
1240  int32_t max_number_of_conflicts_for_quick_check_;
1241  int32_t max_number_of_conflicts_in_random_solution_generation_;
1242  int64_t max_number_of_explored_assignments_per_try_in_ls_;
1243  bool use_transposition_table_in_ls_;
1244  bool use_learned_binary_clauses_in_lp_;
1245  int32_t number_of_solvers_;
1246  double max_deterministic_time_;
1247  double relative_gap_limit_;
1248  int32_t decomposer_num_variables_threshold_;
1249  int32_t num_bop_solvers_used_by_decomposition_;
1250  int32_t guided_sat_conflicts_chunk_;
1251  int32_t max_num_broken_constraints_in_ls_;
1252  double lp_max_deterministic_time_;
1253  friend struct ::TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto;
1254 };
1255 // ===================================================================
1256 
1257 
1258 // ===================================================================
1259 
1260 #ifdef __GNUC__
1261  #pragma GCC diagnostic push
1262  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
1263 #endif // __GNUC__
1264 // BopOptimizerMethod
1265 
1266 // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
1267 inline bool BopOptimizerMethod::_internal_has_type() const {
1268  bool value = (_has_bits_[0] & 0x00000001u) != 0;
1269  return value;
1270 }
1271 inline bool BopOptimizerMethod::has_type() const {
1272  return _internal_has_type();
1273 }
1275  type_ = 0;
1276  _has_bits_[0] &= ~0x00000001u;
1277 }
1278 inline ::operations_research::bop::BopOptimizerMethod_OptimizerType BopOptimizerMethod::_internal_type() const {
1279  return static_cast< ::operations_research::bop::BopOptimizerMethod_OptimizerType >(type_);
1280 }
1282  // @@protoc_insertion_point(field_get:operations_research.bop.BopOptimizerMethod.type)
1283  return _internal_type();
1284 }
1285 inline void BopOptimizerMethod::_internal_set_type(::operations_research::bop::BopOptimizerMethod_OptimizerType value) {
1287  _has_bits_[0] |= 0x00000001u;
1288  type_ = value;
1289 }
1291  _internal_set_type(value);
1292  // @@protoc_insertion_point(field_set:operations_research.bop.BopOptimizerMethod.type)
1293 }
1294 
1295 // -------------------------------------------------------------------
1296 
1297 // BopSolverOptimizerSet
1298 
1299 // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
1300 inline int BopSolverOptimizerSet::_internal_methods_size() const {
1301  return methods_.size();
1302 }
1304  return _internal_methods_size();
1305 }
1307  methods_.Clear();
1308 }
1309 inline ::operations_research::bop::BopOptimizerMethod* BopSolverOptimizerSet::mutable_methods(int index) {
1310  // @@protoc_insertion_point(field_mutable:operations_research.bop.BopSolverOptimizerSet.methods)
1311  return methods_.Mutable(index);
1312 }
1313 inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopOptimizerMethod >*
1315  // @@protoc_insertion_point(field_mutable_list:operations_research.bop.BopSolverOptimizerSet.methods)
1316  return &methods_;
1317 }
1318 inline const ::operations_research::bop::BopOptimizerMethod& BopSolverOptimizerSet::_internal_methods(int index) const {
1319  return methods_.Get(index);
1320 }
1321 inline const ::operations_research::bop::BopOptimizerMethod& BopSolverOptimizerSet::methods(int index) const {
1322  // @@protoc_insertion_point(field_get:operations_research.bop.BopSolverOptimizerSet.methods)
1323  return _internal_methods(index);
1324 }
1325 inline ::operations_research::bop::BopOptimizerMethod* BopSolverOptimizerSet::_internal_add_methods() {
1326  return methods_.Add();
1327 }
1328 inline ::operations_research::bop::BopOptimizerMethod* BopSolverOptimizerSet::add_methods() {
1329  ::operations_research::bop::BopOptimizerMethod* _add = _internal_add_methods();
1330  // @@protoc_insertion_point(field_add:operations_research.bop.BopSolverOptimizerSet.methods)
1331  return _add;
1332 }
1333 inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopOptimizerMethod >&
1335  // @@protoc_insertion_point(field_list:operations_research.bop.BopSolverOptimizerSet.methods)
1336  return methods_;
1337 }
1338 
1339 // -------------------------------------------------------------------
1340 
1341 // BopParameters
1342 
1343 // optional double max_time_in_seconds = 1 [default = inf];
1344 inline bool BopParameters::_internal_has_max_time_in_seconds() const {
1345  bool value = (_has_bits_[0] & 0x00001000u) != 0;
1346  return value;
1347 }
1349  return _internal_has_max_time_in_seconds();
1350 }
1352  max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1353  _has_bits_[0] &= ~0x00001000u;
1354 }
1355 inline double BopParameters::_internal_max_time_in_seconds() const {
1356  return max_time_in_seconds_;
1357 }
1358 inline double BopParameters::max_time_in_seconds() const {
1359  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_time_in_seconds)
1360  return _internal_max_time_in_seconds();
1361 }
1362 inline void BopParameters::_internal_set_max_time_in_seconds(double value) {
1363  _has_bits_[0] |= 0x00001000u;
1364  max_time_in_seconds_ = value;
1365 }
1367  _internal_set_max_time_in_seconds(value);
1368  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_time_in_seconds)
1369 }
1370 
1371 // optional double max_deterministic_time = 27 [default = inf];
1372 inline bool BopParameters::_internal_has_max_deterministic_time() const {
1373  bool value = (_has_bits_[0] & 0x20000000u) != 0;
1374  return value;
1375 }
1377  return _internal_has_max_deterministic_time();
1378 }
1380  max_deterministic_time_ = std::numeric_limits<double>::infinity();
1381  _has_bits_[0] &= ~0x20000000u;
1382 }
1383 inline double BopParameters::_internal_max_deterministic_time() const {
1384  return max_deterministic_time_;
1385 }
1387  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_deterministic_time)
1388  return _internal_max_deterministic_time();
1389 }
1390 inline void BopParameters::_internal_set_max_deterministic_time(double value) {
1391  _has_bits_[0] |= 0x20000000u;
1392  max_deterministic_time_ = value;
1393 }
1395  _internal_set_max_deterministic_time(value);
1396  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_deterministic_time)
1397 }
1398 
1399 // optional double lp_max_deterministic_time = 37 [default = 1];
1400 inline bool BopParameters::_internal_has_lp_max_deterministic_time() const {
1401  bool value = (_has_bits_[1] & 0x00000008u) != 0;
1402  return value;
1403 }
1405  return _internal_has_lp_max_deterministic_time();
1406 }
1408  lp_max_deterministic_time_ = 1;
1409  _has_bits_[1] &= ~0x00000008u;
1410 }
1411 inline double BopParameters::_internal_lp_max_deterministic_time() const {
1412  return lp_max_deterministic_time_;
1413 }
1415  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.lp_max_deterministic_time)
1416  return _internal_lp_max_deterministic_time();
1417 }
1418 inline void BopParameters::_internal_set_lp_max_deterministic_time(double value) {
1419  _has_bits_[1] |= 0x00000008u;
1420  lp_max_deterministic_time_ = value;
1421 }
1423  _internal_set_lp_max_deterministic_time(value);
1424  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.lp_max_deterministic_time)
1425 }
1426 
1427 // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
1428 inline bool BopParameters::_internal_has_max_number_of_consecutive_failing_optimizer_calls() const {
1429  bool value = (_has_bits_[0] & 0x00000040u) != 0;
1430  return value;
1431 }
1433  return _internal_has_max_number_of_consecutive_failing_optimizer_calls();
1434 }
1436  max_number_of_consecutive_failing_optimizer_calls_ = 0;
1437  _has_bits_[0] &= ~0x00000040u;
1438 }
1439 inline int32_t BopParameters::_internal_max_number_of_consecutive_failing_optimizer_calls() const {
1440  return max_number_of_consecutive_failing_optimizer_calls_;
1441 }
1443  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_number_of_consecutive_failing_optimizer_calls)
1444  return _internal_max_number_of_consecutive_failing_optimizer_calls();
1445 }
1446 inline void BopParameters::_internal_set_max_number_of_consecutive_failing_optimizer_calls(int32_t value) {
1447  _has_bits_[0] |= 0x00000040u;
1448  max_number_of_consecutive_failing_optimizer_calls_ = value;
1449 }
1451  _internal_set_max_number_of_consecutive_failing_optimizer_calls(value);
1452  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_number_of_consecutive_failing_optimizer_calls)
1453 }
1454 
1455 // optional double relative_gap_limit = 28 [default = 0.0001];
1456 inline bool BopParameters::_internal_has_relative_gap_limit() const {
1457  bool value = (_has_bits_[0] & 0x40000000u) != 0;
1458  return value;
1459 }
1461  return _internal_has_relative_gap_limit();
1462 }
1464  relative_gap_limit_ = 0.0001;
1465  _has_bits_[0] &= ~0x40000000u;
1466 }
1467 inline double BopParameters::_internal_relative_gap_limit() const {
1468  return relative_gap_limit_;
1469 }
1470 inline double BopParameters::relative_gap_limit() const {
1471  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.relative_gap_limit)
1472  return _internal_relative_gap_limit();
1473 }
1474 inline void BopParameters::_internal_set_relative_gap_limit(double value) {
1475  _has_bits_[0] |= 0x40000000u;
1476  relative_gap_limit_ = value;
1477 }
1479  _internal_set_relative_gap_limit(value);
1480  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.relative_gap_limit)
1481 }
1482 
1483 // optional int32 max_num_decisions_in_ls = 2 [default = 4];
1484 inline bool BopParameters::_internal_has_max_num_decisions_in_ls() const {
1485  bool value = (_has_bits_[0] & 0x00002000u) != 0;
1486  return value;
1487 }
1489  return _internal_has_max_num_decisions_in_ls();
1490 }
1492  max_num_decisions_in_ls_ = 4;
1493  _has_bits_[0] &= ~0x00002000u;
1494 }
1495 inline int32_t BopParameters::_internal_max_num_decisions_in_ls() const {
1496  return max_num_decisions_in_ls_;
1497 }
1499  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_num_decisions_in_ls)
1500  return _internal_max_num_decisions_in_ls();
1501 }
1502 inline void BopParameters::_internal_set_max_num_decisions_in_ls(int32_t value) {
1503  _has_bits_[0] |= 0x00002000u;
1504  max_num_decisions_in_ls_ = value;
1505 }
1507  _internal_set_max_num_decisions_in_ls(value);
1508  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_num_decisions_in_ls)
1509 }
1510 
1511 // optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];
1512 inline bool BopParameters::_internal_has_max_num_broken_constraints_in_ls() const {
1513  bool value = (_has_bits_[1] & 0x00000004u) != 0;
1514  return value;
1515 }
1517  return _internal_has_max_num_broken_constraints_in_ls();
1518 }
1520  max_num_broken_constraints_in_ls_ = 2147483647;
1521  _has_bits_[1] &= ~0x00000004u;
1522 }
1523 inline int32_t BopParameters::_internal_max_num_broken_constraints_in_ls() const {
1524  return max_num_broken_constraints_in_ls_;
1525 }
1527  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_num_broken_constraints_in_ls)
1528  return _internal_max_num_broken_constraints_in_ls();
1529 }
1530 inline void BopParameters::_internal_set_max_num_broken_constraints_in_ls(int32_t value) {
1531  _has_bits_[1] |= 0x00000004u;
1532  max_num_broken_constraints_in_ls_ = value;
1533 }
1535  _internal_set_max_num_broken_constraints_in_ls(value);
1536  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_num_broken_constraints_in_ls)
1537 }
1538 
1539 // optional bool log_search_progress = 14 [default = false];
1540 inline bool BopParameters::_internal_has_log_search_progress() const {
1541  bool value = (_has_bits_[0] & 0x00000002u) != 0;
1542  return value;
1543 }
1545  return _internal_has_log_search_progress();
1546 }
1548  log_search_progress_ = false;
1549  _has_bits_[0] &= ~0x00000002u;
1550 }
1551 inline bool BopParameters::_internal_log_search_progress() const {
1552  return log_search_progress_;
1553 }
1555  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.log_search_progress)
1556  return _internal_log_search_progress();
1557 }
1558 inline void BopParameters::_internal_set_log_search_progress(bool value) {
1559  _has_bits_[0] |= 0x00000002u;
1560  log_search_progress_ = value;
1561 }
1563  _internal_set_log_search_progress(value);
1564  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.log_search_progress)
1565 }
1566 
1567 // optional bool compute_estimated_impact = 3 [default = true];
1568 inline bool BopParameters::_internal_has_compute_estimated_impact() const {
1569  bool value = (_has_bits_[0] & 0x00020000u) != 0;
1570  return value;
1571 }
1573  return _internal_has_compute_estimated_impact();
1574 }
1576  compute_estimated_impact_ = true;
1577  _has_bits_[0] &= ~0x00020000u;
1578 }
1579 inline bool BopParameters::_internal_compute_estimated_impact() const {
1580  return compute_estimated_impact_;
1581 }
1583  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.compute_estimated_impact)
1584  return _internal_compute_estimated_impact();
1585 }
1586 inline void BopParameters::_internal_set_compute_estimated_impact(bool value) {
1587  _has_bits_[0] |= 0x00020000u;
1588  compute_estimated_impact_ = value;
1589 }
1591  _internal_set_compute_estimated_impact(value);
1592  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.compute_estimated_impact)
1593 }
1594 
1595 // optional bool prune_search_tree = 4 [default = false];
1596 inline bool BopParameters::_internal_has_prune_search_tree() const {
1597  bool value = (_has_bits_[0] & 0x00000004u) != 0;
1598  return value;
1599 }
1601  return _internal_has_prune_search_tree();
1602 }
1604  prune_search_tree_ = false;
1605  _has_bits_[0] &= ~0x00000004u;
1606 }
1607 inline bool BopParameters::_internal_prune_search_tree() const {
1608  return prune_search_tree_;
1609 }
1611  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.prune_search_tree)
1612  return _internal_prune_search_tree();
1613 }
1614 inline void BopParameters::_internal_set_prune_search_tree(bool value) {
1615  _has_bits_[0] |= 0x00000004u;
1616  prune_search_tree_ = value;
1617 }
1619  _internal_set_prune_search_tree(value);
1620  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.prune_search_tree)
1621 }
1622 
1623 // optional bool sort_constraints_by_num_terms = 5 [default = false];
1624 inline bool BopParameters::_internal_has_sort_constraints_by_num_terms() const {
1625  bool value = (_has_bits_[0] & 0x00000008u) != 0;
1626  return value;
1627 }
1629  return _internal_has_sort_constraints_by_num_terms();
1630 }
1632  sort_constraints_by_num_terms_ = false;
1633  _has_bits_[0] &= ~0x00000008u;
1634 }
1635 inline bool BopParameters::_internal_sort_constraints_by_num_terms() const {
1636  return sort_constraints_by_num_terms_;
1637 }
1639  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.sort_constraints_by_num_terms)
1640  return _internal_sort_constraints_by_num_terms();
1641 }
1642 inline void BopParameters::_internal_set_sort_constraints_by_num_terms(bool value) {
1643  _has_bits_[0] |= 0x00000008u;
1644  sort_constraints_by_num_terms_ = value;
1645 }
1647  _internal_set_sort_constraints_by_num_terms(value);
1648  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.sort_constraints_by_num_terms)
1649 }
1650 
1651 // optional bool use_random_lns = 6 [default = true];
1652 inline bool BopParameters::_internal_has_use_random_lns() const {
1653  bool value = (_has_bits_[0] & 0x00040000u) != 0;
1654  return value;
1655 }
1657  return _internal_has_use_random_lns();
1658 }
1660  use_random_lns_ = true;
1661  _has_bits_[0] &= ~0x00040000u;
1662 }
1663 inline bool BopParameters::_internal_use_random_lns() const {
1664  return use_random_lns_;
1665 }
1666 inline bool BopParameters::use_random_lns() const {
1667  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.use_random_lns)
1668  return _internal_use_random_lns();
1669 }
1670 inline void BopParameters::_internal_set_use_random_lns(bool value) {
1671  _has_bits_[0] |= 0x00040000u;
1672  use_random_lns_ = value;
1673 }
1675  _internal_set_use_random_lns(value);
1676  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.use_random_lns)
1677 }
1678 
1679 // optional int32 random_seed = 7 [default = 8];
1680 inline bool BopParameters::_internal_has_random_seed() const {
1681  bool value = (_has_bits_[0] & 0x00004000u) != 0;
1682  return value;
1683 }
1684 inline bool BopParameters::has_random_seed() const {
1685  return _internal_has_random_seed();
1686 }
1688  random_seed_ = 8;
1689  _has_bits_[0] &= ~0x00004000u;
1690 }
1691 inline int32_t BopParameters::_internal_random_seed() const {
1692  return random_seed_;
1693 }
1694 inline int32_t BopParameters::random_seed() const {
1695  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.random_seed)
1696  return _internal_random_seed();
1697 }
1698 inline void BopParameters::_internal_set_random_seed(int32_t value) {
1699  _has_bits_[0] |= 0x00004000u;
1700  random_seed_ = value;
1701 }
1703  _internal_set_random_seed(value);
1704  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.random_seed)
1705 }
1706 
1707 // optional int32 num_relaxed_vars = 8 [default = 10];
1708 inline bool BopParameters::_internal_has_num_relaxed_vars() const {
1709  bool value = (_has_bits_[0] & 0x00008000u) != 0;
1710  return value;
1711 }
1713  return _internal_has_num_relaxed_vars();
1714 }
1716  num_relaxed_vars_ = 10;
1717  _has_bits_[0] &= ~0x00008000u;
1718 }
1719 inline int32_t BopParameters::_internal_num_relaxed_vars() const {
1720  return num_relaxed_vars_;
1721 }
1722 inline int32_t BopParameters::num_relaxed_vars() const {
1723  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.num_relaxed_vars)
1724  return _internal_num_relaxed_vars();
1725 }
1726 inline void BopParameters::_internal_set_num_relaxed_vars(int32_t value) {
1727  _has_bits_[0] |= 0x00008000u;
1728  num_relaxed_vars_ = value;
1729 }
1731  _internal_set_num_relaxed_vars(value);
1732  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.num_relaxed_vars)
1733 }
1734 
1735 // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
1736 inline bool BopParameters::_internal_has_max_number_of_conflicts_in_random_lns() const {
1737  bool value = (_has_bits_[0] & 0x00010000u) != 0;
1738  return value;
1739 }
1741  return _internal_has_max_number_of_conflicts_in_random_lns();
1742 }
1744  max_number_of_conflicts_in_random_lns_ = 2500;
1745  _has_bits_[0] &= ~0x00010000u;
1746 }
1747 inline int32_t BopParameters::_internal_max_number_of_conflicts_in_random_lns() const {
1748  return max_number_of_conflicts_in_random_lns_;
1749 }
1751  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_number_of_conflicts_in_random_lns)
1752  return _internal_max_number_of_conflicts_in_random_lns();
1753 }
1754 inline void BopParameters::_internal_set_max_number_of_conflicts_in_random_lns(int32_t value) {
1755  _has_bits_[0] |= 0x00010000u;
1756  max_number_of_conflicts_in_random_lns_ = value;
1757 }
1759  _internal_set_max_number_of_conflicts_in_random_lns(value);
1760  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_number_of_conflicts_in_random_lns)
1761 }
1762 
1763 // optional int32 num_random_lns_tries = 10 [default = 1];
1764 inline bool BopParameters::_internal_has_num_random_lns_tries() const {
1765  bool value = (_has_bits_[0] & 0x00200000u) != 0;
1766  return value;
1767 }
1769  return _internal_has_num_random_lns_tries();
1770 }
1772  num_random_lns_tries_ = 1;
1773  _has_bits_[0] &= ~0x00200000u;
1774 }
1775 inline int32_t BopParameters::_internal_num_random_lns_tries() const {
1776  return num_random_lns_tries_;
1777 }
1778 inline int32_t BopParameters::num_random_lns_tries() const {
1779  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.num_random_lns_tries)
1780  return _internal_num_random_lns_tries();
1781 }
1782 inline void BopParameters::_internal_set_num_random_lns_tries(int32_t value) {
1783  _has_bits_[0] |= 0x00200000u;
1784  num_random_lns_tries_ = value;
1785 }
1787  _internal_set_num_random_lns_tries(value);
1788  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.num_random_lns_tries)
1789 }
1790 
1791 // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1792 inline bool BopParameters::_internal_has_max_number_of_backtracks_in_ls() const {
1793  bool value = (_has_bits_[0] & 0x00400000u) != 0;
1794  return value;
1795 }
1797  return _internal_has_max_number_of_backtracks_in_ls();
1798 }
1800  max_number_of_backtracks_in_ls_ = int64_t{100000000};
1801  _has_bits_[0] &= ~0x00400000u;
1802 }
1803 inline int64_t BopParameters::_internal_max_number_of_backtracks_in_ls() const {
1804  return max_number_of_backtracks_in_ls_;
1805 }
1807  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_number_of_backtracks_in_ls)
1808  return _internal_max_number_of_backtracks_in_ls();
1809 }
1810 inline void BopParameters::_internal_set_max_number_of_backtracks_in_ls(int64_t value) {
1811  _has_bits_[0] |= 0x00400000u;
1812  max_number_of_backtracks_in_ls_ = value;
1813 }
1815  _internal_set_max_number_of_backtracks_in_ls(value);
1816  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_number_of_backtracks_in_ls)
1817 }
1818 
1819 // optional bool use_lp_lns = 12 [default = true];
1820 inline bool BopParameters::_internal_has_use_lp_lns() const {
1821  bool value = (_has_bits_[0] & 0x00080000u) != 0;
1822  return value;
1823 }
1824 inline bool BopParameters::has_use_lp_lns() const {
1825  return _internal_has_use_lp_lns();
1826 }
1828  use_lp_lns_ = true;
1829  _has_bits_[0] &= ~0x00080000u;
1830 }
1831 inline bool BopParameters::_internal_use_lp_lns() const {
1832  return use_lp_lns_;
1833 }
1834 inline bool BopParameters::use_lp_lns() const {
1835  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.use_lp_lns)
1836  return _internal_use_lp_lns();
1837 }
1838 inline void BopParameters::_internal_set_use_lp_lns(bool value) {
1839  _has_bits_[0] |= 0x00080000u;
1840  use_lp_lns_ = value;
1841 }
1843  _internal_set_use_lp_lns(value);
1844  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.use_lp_lns)
1845 }
1846 
1847 // optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];
1848 inline bool BopParameters::_internal_has_use_sat_to_choose_lns_neighbourhood() const {
1849  bool value = (_has_bits_[0] & 0x00100000u) != 0;
1850  return value;
1851 }
1853  return _internal_has_use_sat_to_choose_lns_neighbourhood();
1854 }
1856  use_sat_to_choose_lns_neighbourhood_ = true;
1857  _has_bits_[0] &= ~0x00100000u;
1858 }
1859 inline bool BopParameters::_internal_use_sat_to_choose_lns_neighbourhood() const {
1860  return use_sat_to_choose_lns_neighbourhood_;
1861 }
1863  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.use_sat_to_choose_lns_neighbourhood)
1864  return _internal_use_sat_to_choose_lns_neighbourhood();
1865 }
1866 inline void BopParameters::_internal_set_use_sat_to_choose_lns_neighbourhood(bool value) {
1867  _has_bits_[0] |= 0x00100000u;
1868  use_sat_to_choose_lns_neighbourhood_ = value;
1869 }
1871  _internal_set_use_sat_to_choose_lns_neighbourhood(value);
1872  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.use_sat_to_choose_lns_neighbourhood)
1873 }
1874 
1875 // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1876 inline bool BopParameters::_internal_has_max_number_of_conflicts_for_quick_check() const {
1877  bool value = (_has_bits_[0] & 0x00800000u) != 0;
1878  return value;
1879 }
1881  return _internal_has_max_number_of_conflicts_for_quick_check();
1882 }
1884  max_number_of_conflicts_for_quick_check_ = 10;
1885  _has_bits_[0] &= ~0x00800000u;
1886 }
1887 inline int32_t BopParameters::_internal_max_number_of_conflicts_for_quick_check() const {
1888  return max_number_of_conflicts_for_quick_check_;
1889 }
1891  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_number_of_conflicts_for_quick_check)
1892  return _internal_max_number_of_conflicts_for_quick_check();
1893 }
1894 inline void BopParameters::_internal_set_max_number_of_conflicts_for_quick_check(int32_t value) {
1895  _has_bits_[0] |= 0x00800000u;
1896  max_number_of_conflicts_for_quick_check_ = value;
1897 }
1899  _internal_set_max_number_of_conflicts_for_quick_check(value);
1900  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_number_of_conflicts_for_quick_check)
1901 }
1902 
1903 // optional bool use_symmetry = 17 [default = false];
1904 inline bool BopParameters::_internal_has_use_symmetry() const {
1905  bool value = (_has_bits_[0] & 0x00000010u) != 0;
1906  return value;
1907 }
1908 inline bool BopParameters::has_use_symmetry() const {
1909  return _internal_has_use_symmetry();
1910 }
1912  use_symmetry_ = false;
1913  _has_bits_[0] &= ~0x00000010u;
1914 }
1915 inline bool BopParameters::_internal_use_symmetry() const {
1916  return use_symmetry_;
1917 }
1918 inline bool BopParameters::use_symmetry() const {
1919  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.use_symmetry)
1920  return _internal_use_symmetry();
1921 }
1922 inline void BopParameters::_internal_set_use_symmetry(bool value) {
1923  _has_bits_[0] |= 0x00000010u;
1924  use_symmetry_ = value;
1925 }
1927  _internal_set_use_symmetry(value);
1928  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.use_symmetry)
1929 }
1930 
1931 // optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];
1932 inline bool BopParameters::_internal_has_exploit_symmetry_in_sat_first_solution() const {
1933  bool value = (_has_bits_[0] & 0x00000080u) != 0;
1934  return value;
1935 }
1937  return _internal_has_exploit_symmetry_in_sat_first_solution();
1938 }
1940  exploit_symmetry_in_sat_first_solution_ = false;
1941  _has_bits_[0] &= ~0x00000080u;
1942 }
1943 inline bool BopParameters::_internal_exploit_symmetry_in_sat_first_solution() const {
1944  return exploit_symmetry_in_sat_first_solution_;
1945 }
1947  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.exploit_symmetry_in_sat_first_solution)
1948  return _internal_exploit_symmetry_in_sat_first_solution();
1949 }
1950 inline void BopParameters::_internal_set_exploit_symmetry_in_sat_first_solution(bool value) {
1951  _has_bits_[0] |= 0x00000080u;
1952  exploit_symmetry_in_sat_first_solution_ = value;
1953 }
1955  _internal_set_exploit_symmetry_in_sat_first_solution(value);
1956  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.exploit_symmetry_in_sat_first_solution)
1957 }
1958 
1959 // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1960 inline bool BopParameters::_internal_has_max_number_of_conflicts_in_random_solution_generation() const {
1961  bool value = (_has_bits_[0] & 0x01000000u) != 0;
1962  return value;
1963 }
1965  return _internal_has_max_number_of_conflicts_in_random_solution_generation();
1966 }
1968  max_number_of_conflicts_in_random_solution_generation_ = 500;
1969  _has_bits_[0] &= ~0x01000000u;
1970 }
1971 inline int32_t BopParameters::_internal_max_number_of_conflicts_in_random_solution_generation() const {
1972  return max_number_of_conflicts_in_random_solution_generation_;
1973 }
1975  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_number_of_conflicts_in_random_solution_generation)
1976  return _internal_max_number_of_conflicts_in_random_solution_generation();
1977 }
1978 inline void BopParameters::_internal_set_max_number_of_conflicts_in_random_solution_generation(int32_t value) {
1979  _has_bits_[0] |= 0x01000000u;
1980  max_number_of_conflicts_in_random_solution_generation_ = value;
1981 }
1983  _internal_set_max_number_of_conflicts_in_random_solution_generation(value);
1984  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_number_of_conflicts_in_random_solution_generation)
1985 }
1986 
1987 // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1988 inline bool BopParameters::_internal_has_max_number_of_explored_assignments_per_try_in_ls() const {
1989  bool value = (_has_bits_[0] & 0x02000000u) != 0;
1990  return value;
1991 }
1993  return _internal_has_max_number_of_explored_assignments_per_try_in_ls();
1994 }
1996  max_number_of_explored_assignments_per_try_in_ls_ = int64_t{10000};
1997  _has_bits_[0] &= ~0x02000000u;
1998 }
1999 inline int64_t BopParameters::_internal_max_number_of_explored_assignments_per_try_in_ls() const {
2000  return max_number_of_explored_assignments_per_try_in_ls_;
2001 }
2003  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_number_of_explored_assignments_per_try_in_ls)
2004  return _internal_max_number_of_explored_assignments_per_try_in_ls();
2005 }
2006 inline void BopParameters::_internal_set_max_number_of_explored_assignments_per_try_in_ls(int64_t value) {
2007  _has_bits_[0] |= 0x02000000u;
2008  max_number_of_explored_assignments_per_try_in_ls_ = value;
2009 }
2011  _internal_set_max_number_of_explored_assignments_per_try_in_ls(value);
2012  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_number_of_explored_assignments_per_try_in_ls)
2013 }
2014 
2015 // optional bool use_transposition_table_in_ls = 22 [default = true];
2016 inline bool BopParameters::_internal_has_use_transposition_table_in_ls() const {
2017  bool value = (_has_bits_[0] & 0x04000000u) != 0;
2018  return value;
2019 }
2021  return _internal_has_use_transposition_table_in_ls();
2022 }
2024  use_transposition_table_in_ls_ = true;
2025  _has_bits_[0] &= ~0x04000000u;
2026 }
2027 inline bool BopParameters::_internal_use_transposition_table_in_ls() const {
2028  return use_transposition_table_in_ls_;
2029 }
2031  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.use_transposition_table_in_ls)
2032  return _internal_use_transposition_table_in_ls();
2033 }
2034 inline void BopParameters::_internal_set_use_transposition_table_in_ls(bool value) {
2035  _has_bits_[0] |= 0x04000000u;
2036  use_transposition_table_in_ls_ = value;
2037 }
2039  _internal_set_use_transposition_table_in_ls(value);
2040  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.use_transposition_table_in_ls)
2041 }
2042 
2043 // optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];
2044 inline bool BopParameters::_internal_has_use_potential_one_flip_repairs_in_ls() const {
2045  bool value = (_has_bits_[0] & 0x00000100u) != 0;
2046  return value;
2047 }
2049  return _internal_has_use_potential_one_flip_repairs_in_ls();
2050 }
2052  use_potential_one_flip_repairs_in_ls_ = false;
2053  _has_bits_[0] &= ~0x00000100u;
2054 }
2055 inline bool BopParameters::_internal_use_potential_one_flip_repairs_in_ls() const {
2056  return use_potential_one_flip_repairs_in_ls_;
2057 }
2059  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.use_potential_one_flip_repairs_in_ls)
2060  return _internal_use_potential_one_flip_repairs_in_ls();
2061 }
2062 inline void BopParameters::_internal_set_use_potential_one_flip_repairs_in_ls(bool value) {
2063  _has_bits_[0] |= 0x00000100u;
2064  use_potential_one_flip_repairs_in_ls_ = value;
2065 }
2067  _internal_set_use_potential_one_flip_repairs_in_ls(value);
2068  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.use_potential_one_flip_repairs_in_ls)
2069 }
2070 
2071 // optional bool use_learned_binary_clauses_in_lp = 23 [default = true];
2072 inline bool BopParameters::_internal_has_use_learned_binary_clauses_in_lp() const {
2073  bool value = (_has_bits_[0] & 0x08000000u) != 0;
2074  return value;
2075 }
2077  return _internal_has_use_learned_binary_clauses_in_lp();
2078 }
2080  use_learned_binary_clauses_in_lp_ = true;
2081  _has_bits_[0] &= ~0x08000000u;
2082 }
2083 inline bool BopParameters::_internal_use_learned_binary_clauses_in_lp() const {
2084  return use_learned_binary_clauses_in_lp_;
2085 }
2087  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.use_learned_binary_clauses_in_lp)
2088  return _internal_use_learned_binary_clauses_in_lp();
2089 }
2090 inline void BopParameters::_internal_set_use_learned_binary_clauses_in_lp(bool value) {
2091  _has_bits_[0] |= 0x08000000u;
2092  use_learned_binary_clauses_in_lp_ = value;
2093 }
2095  _internal_set_use_learned_binary_clauses_in_lp(value);
2096  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.use_learned_binary_clauses_in_lp)
2097 }
2098 
2099 // optional int32 number_of_solvers = 24 [default = 1];
2100 inline bool BopParameters::_internal_has_number_of_solvers() const {
2101  bool value = (_has_bits_[0] & 0x10000000u) != 0;
2102  return value;
2103 }
2105  return _internal_has_number_of_solvers();
2106 }
2108  number_of_solvers_ = 1;
2109  _has_bits_[0] &= ~0x10000000u;
2110 }
2111 inline int32_t BopParameters::_internal_number_of_solvers() const {
2112  return number_of_solvers_;
2113 }
2114 inline int32_t BopParameters::number_of_solvers() const {
2115  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.number_of_solvers)
2116  return _internal_number_of_solvers();
2117 }
2118 inline void BopParameters::_internal_set_number_of_solvers(int32_t value) {
2119  _has_bits_[0] |= 0x10000000u;
2120  number_of_solvers_ = value;
2121 }
2123  _internal_set_number_of_solvers(value);
2124  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.number_of_solvers)
2125 }
2126 
2127 // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
2128 inline bool BopParameters::_internal_has_synchronization_type() const {
2129  bool value = (_has_bits_[0] & 0x00000020u) != 0;
2130  return value;
2131 }
2133  return _internal_has_synchronization_type();
2134 }
2136  synchronization_type_ = 0;
2137  _has_bits_[0] &= ~0x00000020u;
2138 }
2139 inline ::operations_research::bop::BopParameters_ThreadSynchronizationType BopParameters::_internal_synchronization_type() const {
2140  return static_cast< ::operations_research::bop::BopParameters_ThreadSynchronizationType >(synchronization_type_);
2141 }
2143  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.synchronization_type)
2144  return _internal_synchronization_type();
2145 }
2146 inline void BopParameters::_internal_set_synchronization_type(::operations_research::bop::BopParameters_ThreadSynchronizationType value) {
2148  _has_bits_[0] |= 0x00000020u;
2149  synchronization_type_ = value;
2150 }
2152  _internal_set_synchronization_type(value);
2153  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.synchronization_type)
2154 }
2155 
2156 // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
2157 inline int BopParameters::_internal_solver_optimizer_sets_size() const {
2158  return solver_optimizer_sets_.size();
2159 }
2161  return _internal_solver_optimizer_sets_size();
2162 }
2164  solver_optimizer_sets_.Clear();
2165 }
2166 inline ::operations_research::bop::BopSolverOptimizerSet* BopParameters::mutable_solver_optimizer_sets(int index) {
2167  // @@protoc_insertion_point(field_mutable:operations_research.bop.BopParameters.solver_optimizer_sets)
2168  return solver_optimizer_sets_.Mutable(index);
2169 }
2170 inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopSolverOptimizerSet >*
2172  // @@protoc_insertion_point(field_mutable_list:operations_research.bop.BopParameters.solver_optimizer_sets)
2173  return &solver_optimizer_sets_;
2174 }
2175 inline const ::operations_research::bop::BopSolverOptimizerSet& BopParameters::_internal_solver_optimizer_sets(int index) const {
2176  return solver_optimizer_sets_.Get(index);
2177 }
2178 inline const ::operations_research::bop::BopSolverOptimizerSet& BopParameters::solver_optimizer_sets(int index) const {
2179  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.solver_optimizer_sets)
2180  return _internal_solver_optimizer_sets(index);
2181 }
2182 inline ::operations_research::bop::BopSolverOptimizerSet* BopParameters::_internal_add_solver_optimizer_sets() {
2183  return solver_optimizer_sets_.Add();
2184 }
2185 inline ::operations_research::bop::BopSolverOptimizerSet* BopParameters::add_solver_optimizer_sets() {
2186  ::operations_research::bop::BopSolverOptimizerSet* _add = _internal_add_solver_optimizer_sets();
2187  // @@protoc_insertion_point(field_add:operations_research.bop.BopParameters.solver_optimizer_sets)
2188  return _add;
2189 }
2190 inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopSolverOptimizerSet >&
2192  // @@protoc_insertion_point(field_list:operations_research.bop.BopParameters.solver_optimizer_sets)
2193  return solver_optimizer_sets_;
2194 }
2195 
2196 // optional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];
2197 inline bool BopParameters::_internal_has_default_solver_optimizer_sets() const {
2198  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2199  return value;
2200 }
2202  return _internal_has_default_solver_optimizer_sets();
2203 }
2205  default_solver_optimizer_sets_.ClearToDefault(::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_, GetArenaForAllocation());
2206  _has_bits_[0] &= ~0x00000001u;
2207 }
2208 inline const std::string& BopParameters::default_solver_optimizer_sets() const {
2209  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.default_solver_optimizer_sets)
2210  if (default_solver_optimizer_sets_.IsDefault(nullptr)) return _i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_.get();
2211  return _internal_default_solver_optimizer_sets();
2212 }
2213 template <typename ArgT0, typename... ArgT>
2214 inline PROTOBUF_ALWAYS_INLINE
2215 void BopParameters::set_default_solver_optimizer_sets(ArgT0&& arg0, ArgT... args) {
2216  _has_bits_[0] |= 0x00000001u;
2217  default_solver_optimizer_sets_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::NonEmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
2218  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.default_solver_optimizer_sets)
2219 }
2221  std::string* _s = _internal_mutable_default_solver_optimizer_sets();
2222  // @@protoc_insertion_point(field_mutable:operations_research.bop.BopParameters.default_solver_optimizer_sets)
2223  return _s;
2224 }
2225 inline const std::string& BopParameters::_internal_default_solver_optimizer_sets() const {
2226  return default_solver_optimizer_sets_.Get();
2227 }
2228 inline void BopParameters::_internal_set_default_solver_optimizer_sets(const std::string& value) {
2229  _has_bits_[0] |= 0x00000001u;
2230  default_solver_optimizer_sets_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::NonEmptyDefault{}, value, GetArenaForAllocation());
2231 }
2232 inline std::string* BopParameters::_internal_mutable_default_solver_optimizer_sets() {
2233  _has_bits_[0] |= 0x00000001u;
2234  return default_solver_optimizer_sets_.Mutable(::operations_research::bop::BopParameters::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_, GetArenaForAllocation());
2235 }
2237  // @@protoc_insertion_point(field_release:operations_research.bop.BopParameters.default_solver_optimizer_sets)
2238  if (!_internal_has_default_solver_optimizer_sets()) {
2239  return nullptr;
2240  }
2241  _has_bits_[0] &= ~0x00000001u;
2242  auto* p = default_solver_optimizer_sets_.ReleaseNonDefault(nullptr, GetArenaForAllocation());
2243  return p;
2244 }
2245 inline void BopParameters::set_allocated_default_solver_optimizer_sets(std::string* default_solver_optimizer_sets) {
2246  if (default_solver_optimizer_sets != nullptr) {
2247  _has_bits_[0] |= 0x00000001u;
2248  } else {
2249  _has_bits_[0] &= ~0x00000001u;
2250  }
2251  default_solver_optimizer_sets_.SetAllocated(nullptr, default_solver_optimizer_sets,
2252  GetArenaForAllocation());
2253  // @@protoc_insertion_point(field_set_allocated:operations_research.bop.BopParameters.default_solver_optimizer_sets)
2254 }
2255 
2256 // optional bool use_lp_strong_branching = 29 [default = false];
2257 inline bool BopParameters::_internal_has_use_lp_strong_branching() const {
2258  bool value = (_has_bits_[0] & 0x00000200u) != 0;
2259  return value;
2260 }
2262  return _internal_has_use_lp_strong_branching();
2263 }
2265  use_lp_strong_branching_ = false;
2266  _has_bits_[0] &= ~0x00000200u;
2267 }
2268 inline bool BopParameters::_internal_use_lp_strong_branching() const {
2269  return use_lp_strong_branching_;
2270 }
2272  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.use_lp_strong_branching)
2273  return _internal_use_lp_strong_branching();
2274 }
2275 inline void BopParameters::_internal_set_use_lp_strong_branching(bool value) {
2276  _has_bits_[0] |= 0x00000200u;
2277  use_lp_strong_branching_ = value;
2278 }
2280  _internal_set_use_lp_strong_branching(value);
2281  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.use_lp_strong_branching)
2282 }
2283 
2284 // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
2285 inline bool BopParameters::_internal_has_decomposer_num_variables_threshold() const {
2286  bool value = (_has_bits_[0] & 0x80000000u) != 0;
2287  return value;
2288 }
2290  return _internal_has_decomposer_num_variables_threshold();
2291 }
2293  decomposer_num_variables_threshold_ = 50;
2294  _has_bits_[0] &= ~0x80000000u;
2295 }
2296 inline int32_t BopParameters::_internal_decomposer_num_variables_threshold() const {
2297  return decomposer_num_variables_threshold_;
2298 }
2300  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.decomposer_num_variables_threshold)
2301  return _internal_decomposer_num_variables_threshold();
2302 }
2303 inline void BopParameters::_internal_set_decomposer_num_variables_threshold(int32_t value) {
2304  _has_bits_[0] |= 0x80000000u;
2305  decomposer_num_variables_threshold_ = value;
2306 }
2308  _internal_set_decomposer_num_variables_threshold(value);
2309  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.decomposer_num_variables_threshold)
2310 }
2311 
2312 // optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];
2313 inline bool BopParameters::_internal_has_num_bop_solvers_used_by_decomposition() const {
2314  bool value = (_has_bits_[1] & 0x00000001u) != 0;
2315  return value;
2316 }
2318  return _internal_has_num_bop_solvers_used_by_decomposition();
2319 }
2321  num_bop_solvers_used_by_decomposition_ = 1;
2322  _has_bits_[1] &= ~0x00000001u;
2323 }
2324 inline int32_t BopParameters::_internal_num_bop_solvers_used_by_decomposition() const {
2325  return num_bop_solvers_used_by_decomposition_;
2326 }
2328  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.num_bop_solvers_used_by_decomposition)
2329  return _internal_num_bop_solvers_used_by_decomposition();
2330 }
2331 inline void BopParameters::_internal_set_num_bop_solvers_used_by_decomposition(int32_t value) {
2332  _has_bits_[1] |= 0x00000001u;
2333  num_bop_solvers_used_by_decomposition_ = value;
2334 }
2336  _internal_set_num_bop_solvers_used_by_decomposition(value);
2337  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.num_bop_solvers_used_by_decomposition)
2338 }
2339 
2340 // optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];
2341 inline bool BopParameters::_internal_has_decomposed_problem_min_time_in_seconds() const {
2342  bool value = (_has_bits_[0] & 0x00000400u) != 0;
2343  return value;
2344 }
2346  return _internal_has_decomposed_problem_min_time_in_seconds();
2347 }
2349  decomposed_problem_min_time_in_seconds_ = 0;
2350  _has_bits_[0] &= ~0x00000400u;
2351 }
2352 inline double BopParameters::_internal_decomposed_problem_min_time_in_seconds() const {
2353  return decomposed_problem_min_time_in_seconds_;
2354 }
2356  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.decomposed_problem_min_time_in_seconds)
2357  return _internal_decomposed_problem_min_time_in_seconds();
2358 }
2359 inline void BopParameters::_internal_set_decomposed_problem_min_time_in_seconds(double value) {
2360  _has_bits_[0] |= 0x00000400u;
2361  decomposed_problem_min_time_in_seconds_ = value;
2362 }
2364  _internal_set_decomposed_problem_min_time_in_seconds(value);
2365  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.decomposed_problem_min_time_in_seconds)
2366 }
2367 
2368 // optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];
2369 inline bool BopParameters::_internal_has_guided_sat_conflicts_chunk() const {
2370  bool value = (_has_bits_[1] & 0x00000002u) != 0;
2371  return value;
2372 }
2374  return _internal_has_guided_sat_conflicts_chunk();
2375 }
2377  guided_sat_conflicts_chunk_ = 1000;
2378  _has_bits_[1] &= ~0x00000002u;
2379 }
2380 inline int32_t BopParameters::_internal_guided_sat_conflicts_chunk() const {
2381  return guided_sat_conflicts_chunk_;
2382 }
2384  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.guided_sat_conflicts_chunk)
2385  return _internal_guided_sat_conflicts_chunk();
2386 }
2387 inline void BopParameters::_internal_set_guided_sat_conflicts_chunk(int32_t value) {
2388  _has_bits_[1] |= 0x00000002u;
2389  guided_sat_conflicts_chunk_ = value;
2390 }
2392  _internal_set_guided_sat_conflicts_chunk(value);
2393  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.guided_sat_conflicts_chunk)
2394 }
2395 
2396 // optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];
2397 inline bool BopParameters::_internal_has_max_lp_solve_for_feasibility_problems() const {
2398  bool value = (_has_bits_[0] & 0x00000800u) != 0;
2399  return value;
2400 }
2402  return _internal_has_max_lp_solve_for_feasibility_problems();
2403 }
2405  max_lp_solve_for_feasibility_problems_ = 0;
2406  _has_bits_[0] &= ~0x00000800u;
2407 }
2408 inline int32_t BopParameters::_internal_max_lp_solve_for_feasibility_problems() const {
2409  return max_lp_solve_for_feasibility_problems_;
2410 }
2412  // @@protoc_insertion_point(field_get:operations_research.bop.BopParameters.max_lp_solve_for_feasibility_problems)
2413  return _internal_max_lp_solve_for_feasibility_problems();
2414 }
2415 inline void BopParameters::_internal_set_max_lp_solve_for_feasibility_problems(int32_t value) {
2416  _has_bits_[0] |= 0x00000800u;
2417  max_lp_solve_for_feasibility_problems_ = value;
2418 }
2420  _internal_set_max_lp_solve_for_feasibility_problems(value);
2421  // @@protoc_insertion_point(field_set:operations_research.bop.BopParameters.max_lp_solve_for_feasibility_problems)
2422 }
2423 
2424 #ifdef __GNUC__
2425  #pragma GCC diagnostic pop
2426 #endif // __GNUC__
2427 // -------------------------------------------------------------------
2428 
2429 // -------------------------------------------------------------------
2430 
2431 
2432 // @@protoc_insertion_point(namespace_scope)
2433 
2434 } // namespace bop
2435 } // namespace operations_research
2436 
2437 PROTOBUF_NAMESPACE_OPEN
2438 
2439 template <> struct is_proto_enum< ::operations_research::bop::BopOptimizerMethod_OptimizerType> : ::std::true_type {};
2440 template <>
2441 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::bop::BopOptimizerMethod_OptimizerType>() {
2443 }
2444 template <> struct is_proto_enum< ::operations_research::bop::BopParameters_ThreadSynchronizationType> : ::std::true_type {};
2445 template <>
2446 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::bop::BopParameters_ThreadSynchronizationType>() {
2448 }
2449 
2450 PROTOBUF_NAMESPACE_CLOSE
2451 
2452 // @@protoc_insertion_point(global_scope)
2453 
2454 #include <google/protobuf/port_undef.inc>
2455 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_ortools_2fbop_2fbop_5fparameters_2eproto
void set_synchronization_type(::operations_research::bop::BopParameters_ThreadSynchronizationType value)
void UnsafeArenaSwap(BopParameters *other)
::operations_research::bop::BopParameters_ThreadSynchronizationType synchronization_type() const
friend void swap(BopSolverOptimizerSet &a, BopSolverOptimizerSet &b)
int32_t max_number_of_consecutive_failing_optimizer_calls() const
void set_max_number_of_conflicts_in_random_solution_generation(int32_t value)
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
bool BopParameters_ThreadSynchronizationType_IsValid(int value)
BopParameters(BopParameters &&from) noexcept
bool has_max_number_of_conflicts_in_random_solution_generation() const
BopSolverOptimizerSet & operator=(BopSolverOptimizerSet &&from) noexcept
BopOptimizerMethod & operator=(BopOptimizerMethod &&from) noexcept
static constexpr OptimizerType RANDOM_VARIABLE_LNS_GUIDED_BY_LP
static const BopParameters * internal_default_instance()
void set_decomposed_problem_min_time_in_seconds(double value)
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopSolverOptimizerSet > * mutable_solver_optimizer_sets()
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * ThreadSynchronizationType_descriptor()
BopSolverOptimizerSet * New(::PROTOBUF_NAMESPACE_ID::Arena *arena=nullptr) const final
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * BopParameters_ThreadSynchronizationType_descriptor()
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * OptimizerType_descriptor()
const std::string name
void set_max_lp_solve_for_feasibility_problems(int32_t value)
const std::string & BopOptimizerMethod_OptimizerType_Name(T enum_t_value)
static const BopSolverOptimizerSet & default_instance()
const std::string & default_solver_optimizer_sets() const
void set_type(::operations_research::bop::BopOptimizerMethod_OptimizerType value)
void set_max_num_broken_constraints_in_ls(int32_t value)
void Swap(BopSolverOptimizerSet *other)
constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod_OptimizerType_OptimizerType_MIN
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
constexpr int BopParameters_ThreadSynchronizationType_ThreadSynchronizationType_ARRAYSIZE
static constexpr OptimizerType LOCAL_SEARCH
static constexpr OptimizerType RELATION_GRAPH_LNS
static const BopSolverOptimizerSet * internal_default_instance()
void set_max_number_of_conflicts_in_random_lns(int32_t value)
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
BopParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena=nullptr) const final
static constexpr OptimizerType RANDOM_VARIABLE_LNS
int64_t b
constexpr int BopOptimizerMethod_OptimizerType_OptimizerType_ARRAYSIZE
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
BopOptimizerMethod(BopOptimizerMethod &&from) noexcept
void CopyFrom(const BopOptimizerMethod &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BopSolverOptimizerSetDefaultTypeInternal _BopSolverOptimizerSet_default_instance_
const std::string & BopParameters_ThreadSynchronizationType_Name(T enum_t_value)
void set_decomposer_num_variables_threshold(int32_t value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
bool BopOptimizerMethod_OptimizerType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, BopOptimizerMethod_OptimizerType *value)
void set_max_number_of_explored_assignments_per_try_in_ls(int64_t value)
static constexpr OptimizerType RELATION_GRAPH_LNS_GUIDED_BY_LP
static bool ThreadSynchronizationType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ThreadSynchronizationType *value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
void set_max_number_of_consecutive_failing_optimizer_calls(int32_t value)
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopOptimizerMethod > & methods() const
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopSolverOptimizerSet > & solver_optimizer_sets() const
constexpr BopParameters_ThreadSynchronizationType BopParameters_ThreadSynchronizationType_ThreadSynchronizationType_MIN
int32_t max_number_of_conflicts_in_random_solution_generation() const
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
void set_max_number_of_conflicts_for_quick_check(int32_t value)
static constexpr OptimizerType SAT_LINEAR_SEARCH
bool BopOptimizerMethod_OptimizerType_IsValid(int value)
friend void swap(BopParameters &a, BopParameters &b)
BopOptimizerMethod & operator=(const BopOptimizerMethod &from)
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
static constexpr OptimizerType RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP
static constexpr OptimizerType COMPLETE_LNS
int index
Definition: pack.cc:509
void set_max_number_of_backtracks_in_ls(int64_t value)
BopSolverOptimizerSet(BopSolverOptimizerSet &&from) noexcept
void MergeFrom(const BopOptimizerMethod &from)
constexpr BopParameters_ThreadSynchronizationType BopParameters_ThreadSynchronizationType_ThreadSynchronizationType_MAX
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::operations_research::bop::BopOptimizerMethod > * mutable_methods()
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
static constexpr OptimizerType RANDOM_CONSTRAINT_LNS
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
void set_allocated_default_solver_optimizer_sets(std::string *default_solver_optimizer_sets)
static const std::string & OptimizerType_Name(T enum_t_value)
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
BopSolverOptimizerSet & operator=(const BopSolverOptimizerSet &from)
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
static constexpr OptimizerType OBJECTIVE_FIRST_SOLUTION
void UnsafeArenaSwap(BopOptimizerMethod *other)
static constexpr OptimizerType OptimizerType_MIN
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto
constexpr BopOptimizerMethod_OptimizerType BopOptimizerMethod_OptimizerType_OptimizerType_MAX
BopParameters & operator=(const BopParameters &from)
void set_default_solver_optimizer_sets(ArgT0 &&arg0, ArgT... args)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
static constexpr OptimizerType LINEAR_RELAXATION
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * BopOptimizerMethod_OptimizerType_descriptor()
static constexpr OptimizerType LP_FIRST_SOLUTION
static constexpr OptimizerType RANDOM_FIRST_SOLUTION
::operations_research::bop::BopOptimizerMethod_OptimizerType type() const
static const std::string & ThreadSynchronizationType_Name(T enum_t_value)
static const BopParameters & default_instance()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BopOptimizerMethodDefaultTypeInternal _BopOptimizerMethod_default_instance_
PROTOBUF_NODISCARD std::string * release_default_solver_optimizer_sets()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BopParametersDefaultTypeInternal _BopParameters_default_instance_
Collection of objects used to extend the Constraint Solver library.
static const BopOptimizerMethod * internal_default_instance()
void set_num_bop_solvers_used_by_decomposition(int32_t value)
void UnsafeArenaSwap(BopSolverOptimizerSet *other)
static bool OptimizerType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, OptimizerType *value)
static const BopOptimizerMethod & default_instance()
static constexpr OptimizerType SAT_CORE_BASED
static constexpr OptimizerType USER_GUIDED_FIRST_SOLUTION
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
friend void swap(BopOptimizerMethod &a, BopOptimizerMethod &b)
static constexpr OptimizerType OptimizerType_MAX
int64_t max_number_of_explored_assignments_per_try_in_ls() const
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
::operations_research::bop::BopOptimizerMethod * add_methods()
BopParameters & operator=(BopParameters &&from) noexcept
BopOptimizerMethod * New(::PROTOBUF_NAMESPACE_ID::Arena *arena=nullptr) const final
int64_t value
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
bool BopParameters_ThreadSynchronizationType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, BopParameters_ThreadSynchronizationType *value)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::operations_research::bop::BopSolverOptimizerSet * add_solver_optimizer_sets()
int64_t a