10#include "google/protobuf/io/coded_stream.h"
11#include "google/protobuf/generated_message_tctable_impl.h"
12#include "google/protobuf/extension_set.h"
13#include "google/protobuf/generated_message_util.h"
14#include "google/protobuf/wire_format_lite.h"
15#include "google/protobuf/descriptor.h"
16#include "google/protobuf/generated_message_reflection.h"
17#include "google/protobuf/reflection_ops.h"
18#include "google/protobuf/wire_format.h"
22#include "google/protobuf/port_def.inc"
23PROTOBUF_PRAGMA_INIT_SEG
26namespace _fl = ::google::protobuf::internal::field_layout;
30inline constexpr BopOptimizerMethod::Impl_::Impl_(
31 ::_pbi::ConstantInitialized) noexcept
37#if defined(PROTOBUF_CUSTOM_VTABLE)
40 : ::google::protobuf::Message(),
42 _impl_(::_pbi::ConstantInitialized()) {
52PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
55inline constexpr BopSolverOptimizerSet::Impl_::Impl_(
56 ::_pbi::ConstantInitialized) noexcept
62#if defined(PROTOBUF_CUSTOM_VTABLE)
65 : ::google::protobuf::Message(),
67 _impl_(::_pbi::ConstantInitialized()) {
77PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
80inline constexpr BopParameters::Impl_::Impl_(
81 ::_pbi::ConstantInitialized) noexcept
83 solver_optimizer_sets_{},
84 prune_search_tree_{
false},
85 sort_constraints_by_num_terms_{
false},
86 log_search_progress_{
false},
89 use_lp_strong_branching_{
false},
90 max_number_of_consecutive_failing_optimizer_calls_{0},
91 max_time_in_seconds_{std::numeric_limits<double>::infinity()},
92 max_num_decisions_in_ls_{4},
94 num_relaxed_vars_{10},
95 max_number_of_conflicts_in_random_lns_{2500},
96 compute_estimated_impact_{
true},
97 use_random_lns_{
true},
99 use_sat_to_choose_lns_neighbourhood_{
true},
100 num_random_lns_tries_{1},
101 max_number_of_backtracks_in_ls_{::int64_t{100000000}},
102 max_number_of_conflicts_for_quick_check_{10},
103 max_number_of_conflicts_in_random_solution_generation_{500},
104 max_number_of_explored_assignments_per_try_in_ls_{::int64_t{10000}},
105 use_transposition_table_in_ls_{
true},
106 use_learned_binary_clauses_in_lp_{
true},
107 number_of_solvers_{1},
108 max_deterministic_time_{std::numeric_limits<double>::infinity()},
109 relative_gap_limit_{0.0001},
110 decomposer_num_variables_threshold_{50},
111 num_bop_solvers_used_by_decomposition_{1},
112 guided_sat_conflicts_chunk_{1000},
113 default_solver_optimizer_sets_(
114 &::google::protobuf::internal::fixed_address_empty_string,
115 ::_pbi::ConstantInitialized()),
116 decomposed_problem_min_time_in_seconds_{0},
117 use_potential_one_flip_repairs_in_ls_{
false},
118 exploit_symmetry_in_sat_first_solution_{
false},
119 max_lp_solve_for_feasibility_problems_{0},
120 lp_max_deterministic_time_{1},
121 max_num_broken_constraints_in_ls_{2147483647} {}
125#if defined(PROTOBUF_CUSTOM_VTABLE)
128 : ::google::protobuf::Message(),
130 _impl_(::_pbi::ConstantInitialized()) {
140PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
144static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
146static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
240static const ::_pbi::MigrationSchema
253 "\n ortools/bop/bop_parameters.proto\022\027oper"
254 "ations_research.bop\"\204\004\n\022BopOptimizerMeth"
255 "od\022G\n\004type\030\001 \001(\01629.operations_research.b"
256 "op.BopOptimizerMethod.OptimizerType\"\244\003\n\r"
257 "OptimizerType\022\022\n\016SAT_CORE_BASED\020\000\022\025\n\021SAT"
258 "_LINEAR_SEARCH\020\017\022\025\n\021LINEAR_RELAXATION\020\001\022"
259 "\020\n\014LOCAL_SEARCH\020\002\022\031\n\025RANDOM_FIRST_SOLUTI"
260 "ON\020\003\022\031\n\025RANDOM_CONSTRAINT_LNS\020\004\022\027\n\023RANDO"
261 "M_VARIABLE_LNS\020\005\022\020\n\014COMPLETE_LNS\020\007\022\025\n\021LP"
262 "_FIRST_SOLUTION\020\010\022\034\n\030OBJECTIVE_FIRST_SOL"
263 "UTION\020\t\022\036\n\032USER_GUIDED_FIRST_SOLUTION\020\016\022"
264 "&\n\"RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP\020\013\022"
265 "$\n RANDOM_VARIABLE_LNS_GUIDED_BY_LP\020\014\022\026\n"
266 "\022RELATION_GRAPH_LNS\020\020\022#\n\037RELATION_GRAPH_"
267 "LNS_GUIDED_BY_LP\020\021\"U\n\025BopSolverOptimizer"
268 "Set\022<\n\007methods\030\001 \003(\0132+.operations_resear"
269 "ch.bop.BopOptimizerMethod\"\356\023\n\rBopParamet"
270 "ers\022 \n\023max_time_in_seconds\030\001 \001(\001:\003inf\022#\n"
271 "\026max_deterministic_time\030\033 \001(\001:\003inf\022$\n\031lp"
272 "_max_deterministic_time\030% \001(\001:\0011\0229\n1max_"
273 "number_of_consecutive_failing_optimizer_"
274 "calls\030# \001(\005\022\"\n\022relative_gap_limit\030\034 \001(\001:"
275 "\0060.0001\022\"\n\027max_num_decisions_in_ls\030\002 \001(\005"
276 ":\0014\0224\n max_num_broken_constraints_in_ls\030"
277 "& \001(\005:\n2147483647\022\"\n\023log_search_progress"
278 "\030\016 \001(\010:\005false\022&\n\030compute_estimated_impac"
279 "t\030\003 \001(\010:\004true\022 \n\021prune_search_tree\030\004 \001(\010"
280 ":\005false\022,\n\035sort_constraints_by_num_terms"
281 "\030\005 \001(\010:\005false\022\034\n\016use_random_lns\030\006 \001(\010:\004t"
282 "rue\022\026\n\013random_seed\030\007 \001(\005:\0018\022\034\n\020num_relax"
283 "ed_vars\030\010 \001(\005:\00210\0223\n%max_number_of_confl"
284 "icts_in_random_lns\030\t \001(\005:\0042500\022\037\n\024num_ra"
285 "ndom_lns_tries\030\n \001(\005:\0011\0221\n\036max_number_of"
286 "_backtracks_in_ls\030\013 \001(\003:\t100000000\022\030\n\nus"
287 "e_lp_lns\030\014 \001(\010:\004true\0221\n#use_sat_to_choos"
288 "e_lns_neighbourhood\030\017 \001(\010:\004true\0223\n\'max_n"
289 "umber_of_conflicts_for_quick_check\030\020 \001(\005"
290 ":\00210\022\033\n\014use_symmetry\030\021 \001(\010:\005false\0225\n&exp"
291 "loit_symmetry_in_sat_first_solution\030( \001("
292 "\010:\005false\022B\n5max_number_of_conflicts_in_r"
293 "andom_solution_generation\030\024 \001(\005:\003500\022\?\n0"
294 "max_number_of_explored_assignments_per_t"
295 "ry_in_ls\030\025 \001(\003:\00510000\022+\n\035use_transpositi"
296 "on_table_in_ls\030\026 \001(\010:\004true\0223\n$use_potent"
297 "ial_one_flip_repairs_in_ls\030\' \001(\010:\005false\022"
298 ".\n use_learned_binary_clauses_in_lp\030\027 \001("
299 "\010:\004true\022\034\n\021number_of_solvers\030\030 \001(\005:\0011\022r\n"
300 "\024synchronization_type\030\031 \001(\0162@.operations"
301 "_research.bop.BopParameters.ThreadSynchr"
302 "onizationType:\022NO_SYNCHRONIZATION\022M\n\025sol"
303 "ver_optimizer_sets\030\032 \003(\0132..operations_re"
304 "search.bop.BopSolverOptimizerSet\022\362\005\n\035def"
305 "ault_solver_optimizer_sets\030! \001(\t:\312\005metho"
306 "ds:{type:LOCAL_SEARCH } "
307 " methods:{type:RANDOM_FIRST_SOLUTIO"
308 "N } methods:{type:LINEAR_RE"
309 "LAXATION } methods:{typ"
310 "e:LP_FIRST_SOLUTION } m"
311 "ethods:{type:OBJECTIVE_FIRST_SOLUTION } "
312 " methods:{type:USER_GUIDED_FIRS"
313 "T_SOLUTION } methods:{type:RANDO"
314 "M_CONSTRAINT_LNS_GUIDED_BY_LP } methods:"
315 "{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP }"
316 " methods:{type:RELATION_GRAPH_LNS } "
317 " methods:{type:RELATION_GRA"
318 "PH_LNS_GUIDED_BY_LP } methods:{type:R"
319 "ANDOM_CONSTRAINT_LNS } meth"
320 "ods:{type:RANDOM_VARIABLE_LNS } "
321 " methods:{type:SAT_CORE_BASED } "
322 " methods:{type:COMPLETE"
323 "_LNS } \022&\n\027use_lp_"
324 "strong_branching\030\035 \001(\010:\005false\022.\n\"decompo"
325 "ser_num_variables_threshold\030\036 \001(\005:\00250\0220\n"
326 "%num_bop_solvers_used_by_decomposition\030\037"
327 " \001(\005:\0011\0221\n&decomposed_problem_min_time_i"
328 "n_seconds\030$ \001(\001:\0010\022(\n\032guided_sat_conflic"
329 "ts_chunk\030\" \001(\005:\0041000\0220\n%max_lp_solve_for"
330 "_feasibility_problems\030) \001(\005:\0010\"b\n\031Thread"
331 "SynchronizationType\022\026\n\022NO_SYNCHRONIZATIO"
332 "N\020\000\022\023\n\017SYNCHRONIZE_ALL\020\001\022\030\n\024SYNCHRONIZE_"
333 "ON_RIGHT\020\002B/\n\026com.google.ortools.bopP\001\252\002"
334 "\022Google.OrTools.Bop"
341 descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto,
342 "ortools/bop/bop_parameters.proto",
360 393216u, 32u, 3950u, };
369class BopOptimizerMethod::_Internal {
372 decltype(::std::declval<BopOptimizerMethod>()._impl_._has_bits_);
378#if defined(PROTOBUF_CUSTOM_VTABLE)
381 : ::google::protobuf::Message(arena) {
388#if defined(PROTOBUF_CUSTOM_VTABLE)
391 : ::google::protobuf::Message(arena),
394 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
395 from._internal_metadata_);
397PROTOBUF_NDEBUG_INLINE BopOptimizerMethod::Impl_::Impl_(
398 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
399 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
400 : _cached_size_{0} {}
402inline void BopOptimizerMethod::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
403 new (&
_impl_) Impl_(internal_visibility(), arena);
410inline void BopOptimizerMethod::SharedDtor(
MessageLite& self) {
412 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
413 this_.CheckHasBitConsistency();
415 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
416 ABSL_DCHECK(this_.GetArena() ==
nullptr);
420inline void* PROTOBUF_NONNULL BopOptimizerMethod::PlacementNew_(
421 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
422 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
425constexpr auto BopOptimizerMethod::InternalNewImpl_() {
426 return ::google::protobuf::internal::MessageCreator::ZeroInit(
sizeof(
BopOptimizerMethod),
430 return ::google::protobuf::internal::ClassDataFull{
431 ::google::protobuf::internal::ClassData{
436 &BopOptimizerMethod::MergeImpl,
437 ::google::protobuf::Message::GetNewImpl<BopOptimizerMethod>(),
438#if defined(PROTOBUF_CUSTOM_VTABLE)
439 &BopOptimizerMethod::SharedDtor,
446 &BopOptimizerMethod::kDescriptorMethods,
452PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
456PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
457BopOptimizerMethod::GetClassData()
const {
462PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
463const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
464BopOptimizerMethod::_table_ = {
469 offsetof(
decltype(_table_), field_lookup_table),
471 offsetof(
decltype(_table_), field_entries),
474 offsetof(
decltype(_table_), aux_entries),
477 ::_pbi::TcParser::GenericFallback,
478 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
479 ::_pbi::TcParser::GetTable<::operations_research::bop::BopOptimizerMethod>(),
483 {::_pbi::TcParser::FastEvS1,
500 ::google::protobuf::internal::TSanWrite(&
_impl_);
501 ::uint32_t cached_has_bits = 0;
503 (void) cached_has_bits;
506 _impl_._has_bits_.Clear();
507 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
510#if defined(PROTOBUF_CUSTOM_VTABLE)
512 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
513 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
517 ::uint8_t* PROTOBUF_NONNULL target,
518 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
521 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
522 this_.CheckHasBitConsistency();
525 ::uint32_t cached_has_bits = 0;
526 (void)cached_has_bits;
528 cached_has_bits = this_.
_impl_._has_bits_[0];
530 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
531 target = stream->EnsureSpace(target);
532 target = ::_pbi::WireFormatLite::WriteEnumToArray(
533 1, this_._internal_type(), target);
536 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
538 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
539 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
545#if defined(PROTOBUF_CUSTOM_VTABLE)
553 ::size_t total_size = 0;
555 ::uint32_t cached_has_bits = 0;
557 (void)cached_has_bits;
561 cached_has_bits = this_.
_impl_._has_bits_[0];
562 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
564 ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
567 return this_.MaybeComputeUnknownFieldsSize(total_size,
568 &this_.
_impl_._cached_size_);
571void BopOptimizerMethod::MergeImpl(::google::protobuf::MessageLite& to_msg,
572 const ::google::protobuf::MessageLite& from_msg) {
576 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
577 from.CheckHasBitConsistency();
580 ABSL_DCHECK_NE(&from, _this);
581 ::uint32_t cached_has_bits = 0;
582 (void)cached_has_bits;
584 cached_has_bits = from.
_impl_._has_bits_[0];
585 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
586 _this->_impl_.type_ = from.
_impl_.type_;
588 _this->_impl_._has_bits_[0] |= cached_has_bits;
589 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
590 from._internal_metadata_);
595 if (&from ==
this)
return;
601void BopOptimizerMethod::InternalSwap(
BopOptimizerMethod* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
603 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
604 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
609 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
616 decltype(::std::declval<BopSolverOptimizerSet>()._impl_._has_bits_);
622#if defined(PROTOBUF_CUSTOM_VTABLE)
625 : ::google::protobuf::Message(arena) {
630PROTOBUF_NDEBUG_INLINE BopSolverOptimizerSet::Impl_::Impl_(
631 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
632 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
633 [[maybe_unused]] const ::operations_research::bop::BopSolverOptimizerSet& from_msg)
634 : _has_bits_{from._has_bits_},
636 methods_{visibility, arena, from.methods_} {}
639 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
641#if defined(PROTOBUF_CUSTOM_VTABLE)
644 : ::google::protobuf::Message(arena) {
648 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
649 from._internal_metadata_);
650 new (&
_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
654PROTOBUF_NDEBUG_INLINE BopSolverOptimizerSet::Impl_::Impl_(
655 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
656 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
658 methods_{visibility, arena} {}
660inline void BopSolverOptimizerSet::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
661 new (&
_impl_) Impl_(internal_visibility(), arena);
667inline void BopSolverOptimizerSet::SharedDtor(
MessageLite& self) {
669 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
670 this_.CheckHasBitConsistency();
672 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
673 ABSL_DCHECK(this_.GetArena() ==
nullptr);
677inline void* PROTOBUF_NONNULL BopSolverOptimizerSet::PlacementNew_(
678 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
679 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
682constexpr auto BopSolverOptimizerSet::InternalNewImpl_() {
683 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
686 InternalGetArenaOffset(
687 ::google::protobuf::Message::internal_visibility()),
689 if (arena_bits.has_value()) {
690 return ::google::protobuf::internal::MessageCreator::ZeroInit(
691 sizeof(BopSolverOptimizerSet), alignof(BopSolverOptimizerSet), *arena_bits);
693 return ::google::protobuf::internal::MessageCreator(&BopSolverOptimizerSet::PlacementNew_,
694 sizeof(BopSolverOptimizerSet),
695 alignof(BopSolverOptimizerSet));
699 return ::google::protobuf::internal::ClassDataFull{
700 ::google::protobuf::internal::ClassData{
705 &BopSolverOptimizerSet::MergeImpl,
706 ::google::protobuf::Message::GetNewImpl<BopSolverOptimizerSet>(),
707#if defined(PROTOBUF_CUSTOM_VTABLE)
708 &BopSolverOptimizerSet::SharedDtor,
715 &BopSolverOptimizerSet::kDescriptorMethods,
721PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
725PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
726BopSolverOptimizerSet::GetClassData()
const {
731PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
732const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
733BopSolverOptimizerSet::_table_ = {
738 offsetof(
decltype(_table_), field_lookup_table),
740 offsetof(
decltype(_table_), field_entries),
743 offsetof(
decltype(_table_), aux_entries),
746 ::_pbi::TcParser::GenericFallback,
747 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
748 ::_pbi::TcParser::GetTable<::operations_research::bop::BopSolverOptimizerSet>(),
752 {::_pbi::TcParser::FastMtR1,
762 {::_pbi::TcParser::GetTable<::operations_research::bop::BopOptimizerMethod>()},
769 ::google::protobuf::internal::TSanWrite(&
_impl_);
770 ::uint32_t cached_has_bits = 0;
772 (void) cached_has_bits;
774 cached_has_bits =
_impl_._has_bits_[0];
775 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
778 _impl_._has_bits_.Clear();
779 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
782#if defined(PROTOBUF_CUSTOM_VTABLE)
784 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
785 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
789 ::uint8_t* PROTOBUF_NONNULL target,
790 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
793 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
794 this_.CheckHasBitConsistency();
797 ::uint32_t cached_has_bits = 0;
798 (void)cached_has_bits;
800 cached_has_bits = this_.
_impl_._has_bits_[0];
802 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
803 for (
unsigned i = 0, n =
static_cast<unsigned>(
804 this_._internal_methods_size());
806 const auto& repfield = this_._internal_methods().Get(i);
808 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
809 1, repfield, repfield.GetCachedSize(),
814 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
816 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
817 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
823#if defined(PROTOBUF_CUSTOM_VTABLE)
831 ::size_t total_size = 0;
833 ::uint32_t cached_has_bits = 0;
835 (void)cached_has_bits;
837 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
840 cached_has_bits = this_.
_impl_._has_bits_[0];
841 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
842 total_size += 1UL * this_._internal_methods_size();
843 for (
const auto& msg : this_._internal_methods()) {
844 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
848 return this_.MaybeComputeUnknownFieldsSize(total_size,
849 &this_.
_impl_._cached_size_);
852void BopSolverOptimizerSet::MergeImpl(::google::protobuf::MessageLite& to_msg,
853 const ::google::protobuf::MessageLite& from_msg) {
857 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
858 from.CheckHasBitConsistency();
862 ABSL_DCHECK_NE(&from, _this);
863 ::uint32_t cached_has_bits = 0;
864 (void)cached_has_bits;
866 cached_has_bits = from._impl_._has_bits_[0];
867 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
868 _this->_internal_mutable_methods()->InternalMergeFromWithArena(
869 ::google::protobuf::MessageLite::internal_visibility(), arena,
870 from._internal_methods());
872 _this->_impl_._has_bits_[0] |= cached_has_bits;
873 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
874 from._internal_metadata_);
879 if (&from ==
this)
return;
885void BopSolverOptimizerSet::InternalSwap(
BopSolverOptimizerSet* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
887 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
888 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
889 _impl_.methods_.InternalSwap(&other->_impl_.methods_);
893 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
900 decltype(::std::declval<BopParameters>()._impl_._has_bits_);
905 const ::_pbi::LazyString BopParameters::Impl_::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_{
906 {{
"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 } ", 714}},
910#if defined(PROTOBUF_CUSTOM_VTABLE)
913 : ::google::protobuf::Message(arena) {
918PROTOBUF_NDEBUG_INLINE BopParameters::Impl_::Impl_(
919 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
920 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
921 [[maybe_unused]] const ::operations_research::bop::BopParameters& from_msg)
922 : _has_bits_{from._has_bits_},
924 solver_optimizer_sets_{visibility, arena, from.solver_optimizer_sets_},
925 default_solver_optimizer_sets_(arena, from.default_solver_optimizer_sets_, _i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_) {}
928 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
930#if defined(PROTOBUF_CUSTOM_VTABLE)
933 : ::google::protobuf::Message(arena) {
937 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
938 from._internal_metadata_);
939 new (&
_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
940 ::memcpy(
reinterpret_cast<char*
>(&
_impl_) +
941 offsetof(Impl_, prune_search_tree_),
942 reinterpret_cast<const char*
>(&from._impl_) +
943 offsetof(Impl_, prune_search_tree_),
944 offsetof(Impl_, guided_sat_conflicts_chunk_) -
945 offsetof(Impl_, prune_search_tree_) +
946 sizeof(Impl_::guided_sat_conflicts_chunk_));
947 ::memcpy(
reinterpret_cast<char*
>(&
_impl_) +
948 offsetof(Impl_, decomposed_problem_min_time_in_seconds_),
949 reinterpret_cast<const char*
>(&from._impl_) +
950 offsetof(Impl_, decomposed_problem_min_time_in_seconds_),
951 offsetof(Impl_, max_num_broken_constraints_in_ls_) -
952 offsetof(Impl_, decomposed_problem_min_time_in_seconds_) +
953 sizeof(Impl_::max_num_broken_constraints_in_ls_));
957PROTOBUF_NDEBUG_INLINE BopParameters::Impl_::Impl_(
958 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
959 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
961 solver_optimizer_sets_{visibility, arena},
962 max_time_in_seconds_{
std::numeric_limits<double>::infinity()},
963 max_num_decisions_in_ls_{4},
965 num_relaxed_vars_{10},
966 max_number_of_conflicts_in_random_lns_{2500},
967 compute_estimated_impact_{true},
968 use_random_lns_{true},
970 use_sat_to_choose_lns_neighbourhood_{true},
971 num_random_lns_tries_{1},
972 max_number_of_backtracks_in_ls_{::int64_t{100000000}},
973 max_number_of_conflicts_for_quick_check_{10},
974 max_number_of_conflicts_in_random_solution_generation_{500},
975 max_number_of_explored_assignments_per_try_in_ls_{::int64_t{10000}},
976 use_transposition_table_in_ls_{true},
977 use_learned_binary_clauses_in_lp_{true},
978 number_of_solvers_{1},
979 max_deterministic_time_{
std::numeric_limits<double>::infinity()},
980 relative_gap_limit_{0.0001},
981 decomposer_num_variables_threshold_{50},
982 num_bop_solvers_used_by_decomposition_{1},
983 guided_sat_conflicts_chunk_{1000},
984 default_solver_optimizer_sets_(arena, Impl_::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_),
985 lp_max_deterministic_time_{1},
986 max_num_broken_constraints_in_ls_{2147483647} {}
988inline void BopParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
989 new (&
_impl_) Impl_(internal_visibility(), arena);
990 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
991 offsetof(Impl_, prune_search_tree_),
993 offsetof(Impl_, max_number_of_consecutive_failing_optimizer_calls_) -
994 offsetof(Impl_, prune_search_tree_) +
995 sizeof(Impl_::max_number_of_consecutive_failing_optimizer_calls_));
996 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
997 offsetof(Impl_, decomposed_problem_min_time_in_seconds_),
999 offsetof(Impl_, max_lp_solve_for_feasibility_problems_) -
1000 offsetof(Impl_, decomposed_problem_min_time_in_seconds_) +
1001 sizeof(Impl_::max_lp_solve_for_feasibility_problems_));
1007inline void BopParameters::SharedDtor(
MessageLite& self) {
1009 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1010 this_.CheckHasBitConsistency();
1012 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
1013 ABSL_DCHECK(this_.GetArena() ==
nullptr);
1014 this_.
_impl_.default_solver_optimizer_sets_.Destroy();
1018inline void* PROTOBUF_NONNULL BopParameters::PlacementNew_(
1019 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
1020 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
1023constexpr auto BopParameters::InternalNewImpl_() {
1024 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
1027 InternalGetArenaOffset(
1028 ::google::protobuf::Message::internal_visibility()),
1030 if (arena_bits.has_value()) {
1031 return ::google::protobuf::internal::MessageCreator::CopyInit(
1032 sizeof(BopParameters), alignof(BopParameters), *arena_bits);
1034 return ::google::protobuf::internal::MessageCreator(&BopParameters::PlacementNew_,
1035 sizeof(BopParameters),
1036 alignof(BopParameters));
1040 return ::google::protobuf::internal::ClassDataFull{
1041 ::google::protobuf::internal::ClassData{
1046 &BopParameters::MergeImpl,
1047 ::google::protobuf::Message::GetNewImpl<BopParameters>(),
1048#if defined(PROTOBUF_CUSTOM_VTABLE)
1049 &BopParameters::SharedDtor,
1056 &BopParameters::kDescriptorMethods,
1062PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1066PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1067BopParameters::GetClassData()
const {
1072PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1073const ::_pbi::TcParseTable<5, 37, 2, 0, 7>
1074BopParameters::_table_ = {
1079 offsetof(
decltype(_table_), field_lookup_table),
1081 offsetof(
decltype(_table_), field_entries),
1084 offsetof(
decltype(_table_), aux_entries),
1087 ::_pbi::TcParser::GenericFallback,
1088 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1089 ::_pbi::TcParser::GetTable<::operations_research::bop::BopParameters>(),
1092 {::_pbi::TcParser::MiniParse, {}},
1094 {::_pbi::TcParser::FastF64S1,
1098 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
BopParameters,
_impl_.max_num_decisions_in_ls_), 9>(),
1102 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
BopParameters,
_impl_.compute_estimated_impact_), 13>(),
1106 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
BopParameters,
_impl_.prune_search_tree_), 1>(),
1110 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
BopParameters,
_impl_.sort_constraints_by_num_terms_), 2>(),
1114 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
BopParameters,
_impl_.use_random_lns_), 14>(),
1118 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
BopParameters,
_impl_.random_seed_), 10>(),
1122 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
BopParameters,
_impl_.num_relaxed_vars_), 11>(),
1126 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
BopParameters,
_impl_.max_number_of_conflicts_in_random_lns_), 12>(),
1130 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
BopParameters,
_impl_.num_random_lns_tries_), 17>(),
1134 {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(
BopParameters,
_impl_.max_number_of_backtracks_in_ls_), 18>(),
1138 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
BopParameters,
_impl_.use_lp_lns_), 15>(),
1141 {::_pbi::TcParser::MiniParse, {}},
1143 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
BopParameters,
_impl_.log_search_progress_), 3>(),
1147 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
BopParameters,
_impl_.use_sat_to_choose_lns_neighbourhood_), 16>(),
1151 {::_pbi::TcParser::FastV32S2,
1155 {::_pbi::TcParser::FastV8S2,
1159 {::_pbi::TcParser::FastV32S2,
1163 {::_pbi::TcParser::FastV32S2,
1165 PROTOBUF_FIELD_OFFSET(
BopParameters,
_impl_.max_number_of_consecutive_failing_optimizer_calls_)}},
1167 {::_pbi::TcParser::FastV32S2,
1169 PROTOBUF_FIELD_OFFSET(
BopParameters,
_impl_.max_number_of_conflicts_in_random_solution_generation_)}},
1171 {::_pbi::TcParser::FastV64S2,
1173 PROTOBUF_FIELD_OFFSET(
BopParameters,
_impl_.max_number_of_explored_assignments_per_try_in_ls_)}},
1175 {::_pbi::TcParser::FastV8S2,
1179 {::_pbi::TcParser::FastV8S2,
1183 {::_pbi::TcParser::FastV32S2,
1187 {::_pbi::TcParser::FastEr0S2,
1191 {::_pbi::TcParser::FastMtR2,
1195 {::_pbi::TcParser::FastF64S2,
1199 {::_pbi::TcParser::FastF64S2,
1203 {::_pbi::TcParser::FastV8S2,
1207 {::_pbi::TcParser::FastV32S2,
1211 {::_pbi::TcParser::FastV32S2,
1295 {::_pbi::TcParser::GetTable<::operations_research::bop::BopSolverOptimizerSet>()},
1303 ::google::protobuf::internal::TSanWrite(&
_impl_);
1304 ::uint32_t cached_has_bits = 0;
1306 (void) cached_has_bits;
1308 cached_has_bits =
_impl_._has_bits_[0];
1309 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
1310 _impl_.solver_optimizer_sets_.Clear();
1312 if (BatchCheckHasBit(cached_has_bits, 0x000000feU)) {
1313 ::memset(&
_impl_.prune_search_tree_, 0,
static_cast<::
size_t>(
1314 reinterpret_cast<char*
>(&
_impl_.max_number_of_consecutive_failing_optimizer_calls_) -
1315 reinterpret_cast<char*
>(&
_impl_.prune_search_tree_)) +
sizeof(
_impl_.max_number_of_consecutive_failing_optimizer_calls_));
1317 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
1318 _impl_.max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1319 _impl_.max_num_decisions_in_ls_ = 4;
1321 _impl_.num_relaxed_vars_ = 10;
1322 _impl_.max_number_of_conflicts_in_random_lns_ = 2500;
1323 _impl_.compute_estimated_impact_ =
true;
1324 _impl_.use_random_lns_ =
true;
1325 _impl_.use_lp_lns_ =
true;
1327 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
1328 _impl_.use_sat_to_choose_lns_neighbourhood_ =
true;
1329 _impl_.num_random_lns_tries_ = 1;
1330 _impl_.max_number_of_backtracks_in_ls_ = ::int64_t{100000000};
1331 _impl_.max_number_of_conflicts_for_quick_check_ = 10;
1332 _impl_.max_number_of_conflicts_in_random_solution_generation_ = 500;
1333 _impl_.max_number_of_explored_assignments_per_try_in_ls_ = ::int64_t{10000};
1334 _impl_.use_transposition_table_in_ls_ =
true;
1335 _impl_.use_learned_binary_clauses_in_lp_ =
true;
1337 if (BatchCheckHasBit(cached_has_bits, 0x7f000000U)) {
1338 _impl_.number_of_solvers_ = 1;
1339 _impl_.max_deterministic_time_ = std::numeric_limits<double>::infinity();
1340 _impl_.relative_gap_limit_ = 0.0001;
1341 _impl_.decomposer_num_variables_threshold_ = 50;
1342 _impl_.num_bop_solvers_used_by_decomposition_ = 1;
1343 _impl_.guided_sat_conflicts_chunk_ = 1000;
1344 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1345 _impl_.default_solver_optimizer_sets_.ClearToDefault(::operations_research::bop::BopParameters::Impl_::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_, GetArena());
1348 _impl_.decomposed_problem_min_time_in_seconds_ = 0;
1349 cached_has_bits =
_impl_._has_bits_[1];
1350 if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
1351 ::memset(&
_impl_.use_potential_one_flip_repairs_in_ls_, 0,
static_cast<::
size_t>(
1352 reinterpret_cast<char*
>(&
_impl_.max_lp_solve_for_feasibility_problems_) -
1353 reinterpret_cast<char*
>(&
_impl_.use_potential_one_flip_repairs_in_ls_)) +
sizeof(
_impl_.max_lp_solve_for_feasibility_problems_));
1354 _impl_.lp_max_deterministic_time_ = 1;
1355 _impl_.max_num_broken_constraints_in_ls_ = 2147483647;
1357 _impl_._has_bits_.Clear();
1358 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1361#if defined(PROTOBUF_CUSTOM_VTABLE)
1363 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
1364 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1368 ::uint8_t* PROTOBUF_NONNULL target,
1369 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
1372 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1373 this_.CheckHasBitConsistency();
1376 ::uint32_t cached_has_bits = 0;
1377 (void)cached_has_bits;
1379 cached_has_bits = this_.
_impl_._has_bits_[0];
1381 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
1382 target = stream->EnsureSpace(target);
1383 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1384 1, this_._internal_max_time_in_seconds(), target);
1388 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1390 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
1391 stream, this_._internal_max_num_decisions_in_ls(), target);
1395 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1396 target = stream->EnsureSpace(target);
1397 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1398 3, this_._internal_compute_estimated_impact(), target);
1402 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1403 target = stream->EnsureSpace(target);
1404 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1405 4, this_._internal_prune_search_tree(), target);
1409 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1410 target = stream->EnsureSpace(target);
1411 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1412 5, this_._internal_sort_constraints_by_num_terms(), target);
1416 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
1417 target = stream->EnsureSpace(target);
1418 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1419 6, this_._internal_use_random_lns(), target);
1423 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1425 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
1426 stream, this_._internal_random_seed(), target);
1430 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1432 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<8>(
1433 stream, this_._internal_num_relaxed_vars(), target);
1437 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1439 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<9>(
1440 stream, this_._internal_max_number_of_conflicts_in_random_lns(), target);
1444 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1446 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<10>(
1447 stream, this_._internal_num_random_lns_tries(), target);
1451 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1453 ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<11>(
1454 stream, this_._internal_max_number_of_backtracks_in_ls(), target);
1458 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1459 target = stream->EnsureSpace(target);
1460 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1461 12, this_._internal_use_lp_lns(), target);
1465 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1466 target = stream->EnsureSpace(target);
1467 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1468 14, this_._internal_log_search_progress(), target);
1472 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1473 target = stream->EnsureSpace(target);
1474 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1475 15, this_._internal_use_sat_to_choose_lns_neighbourhood(), target);
1479 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1480 target = stream->EnsureSpace(target);
1481 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1482 16, this_._internal_max_number_of_conflicts_for_quick_check(), target);
1486 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1487 target = stream->EnsureSpace(target);
1488 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1489 17, this_._internal_use_symmetry(), target);
1493 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1494 target = stream->EnsureSpace(target);
1495 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1496 20, this_._internal_max_number_of_conflicts_in_random_solution_generation(), target);
1500 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1501 target = stream->EnsureSpace(target);
1502 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
1503 21, this_._internal_max_number_of_explored_assignments_per_try_in_ls(), target);
1507 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1508 target = stream->EnsureSpace(target);
1509 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1510 22, this_._internal_use_transposition_table_in_ls(), target);
1514 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1515 target = stream->EnsureSpace(target);
1516 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1517 23, this_._internal_use_learned_binary_clauses_in_lp(), target);
1521 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1522 target = stream->EnsureSpace(target);
1523 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1524 24, this_._internal_number_of_solvers(), target);
1528 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1529 target = stream->EnsureSpace(target);
1530 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1531 25, this_._internal_synchronization_type(), target);
1535 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
1536 for (
unsigned i = 0, n =
static_cast<unsigned>(
1537 this_._internal_solver_optimizer_sets_size());
1539 const auto& repfield = this_._internal_solver_optimizer_sets().Get(i);
1541 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1542 26, repfield, repfield.GetCachedSize(),
1548 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1549 target = stream->EnsureSpace(target);
1550 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1551 27, this_._internal_max_deterministic_time(), target);
1555 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1556 target = stream->EnsureSpace(target);
1557 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1558 28, this_._internal_relative_gap_limit(), target);
1562 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1563 target = stream->EnsureSpace(target);
1564 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1565 29, this_._internal_use_lp_strong_branching(), target);
1569 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
1570 target = stream->EnsureSpace(target);
1571 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1572 30, this_._internal_decomposer_num_variables_threshold(), target);
1576 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
1577 target = stream->EnsureSpace(target);
1578 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1579 31, this_._internal_num_bop_solvers_used_by_decomposition(), target);
1583 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1584 const ::std::string& _s = this_._internal_default_solver_optimizer_sets();
1585 target = stream->WriteStringMaybeAliased(33, _s, target);
1589 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
1590 target = stream->EnsureSpace(target);
1591 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1592 34, this_._internal_guided_sat_conflicts_chunk(), target);
1596 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1597 target = stream->EnsureSpace(target);
1598 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1599 35, this_._internal_max_number_of_consecutive_failing_optimizer_calls(), target);
1603 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
1604 target = stream->EnsureSpace(target);
1605 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1606 36, this_._internal_decomposed_problem_min_time_in_seconds(), target);
1609 cached_has_bits = this_.
_impl_._has_bits_[1];
1611 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1612 target = stream->EnsureSpace(target);
1613 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1614 37, this_._internal_lp_max_deterministic_time(), target);
1618 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1619 target = stream->EnsureSpace(target);
1620 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1621 38, this_._internal_max_num_broken_constraints_in_ls(), target);
1625 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1626 target = stream->EnsureSpace(target);
1627 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1628 39, this_._internal_use_potential_one_flip_repairs_in_ls(), target);
1632 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1633 target = stream->EnsureSpace(target);
1634 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1635 40, this_._internal_exploit_symmetry_in_sat_first_solution(), target);
1639 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1640 target = stream->EnsureSpace(target);
1641 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1642 41, this_._internal_max_lp_solve_for_feasibility_problems(), target);
1645 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1647 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1648 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1654#if defined(PROTOBUF_CUSTOM_VTABLE)
1662 ::size_t total_size = 0;
1664 ::uint32_t cached_has_bits = 0;
1666 (void)cached_has_bits;
1668 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1669 cached_has_bits = this_._impl_._has_bits_[0];
1670 total_size += ::absl::popcount(0x86000000U & cached_has_bits) * 10;
1671 total_size +=
static_cast<bool>(0x00000100U & cached_has_bits) * 9;
1672 total_size += ::absl::popcount(0x00c00050U & cached_has_bits) * 3;
1673 total_size += ::absl::popcount(0x0001e00eU & cached_has_bits) * 2;
1674 if (BatchCheckHasBit(cached_has_bits, 0x000000a1U)) {
1676 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
1677 total_size += 2UL * this_._internal_solver_optimizer_sets_size();
1678 for (
const auto& msg : this_._internal_solver_optimizer_sets()) {
1679 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
1683 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1685 ::_pbi::WireFormatLite::EnumSize(this_._internal_synchronization_type());
1688 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1689 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1690 this_._internal_max_number_of_consecutive_failing_optimizer_calls());
1693 if (BatchCheckHasBit(cached_has_bits, 0x00001e00U)) {
1695 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1696 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1697 this_._internal_max_num_decisions_in_ls());
1700 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1701 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1702 this_._internal_random_seed());
1705 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1706 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1707 this_._internal_num_relaxed_vars());
1710 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1711 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1712 this_._internal_max_number_of_conflicts_in_random_lns());
1715 if (BatchCheckHasBit(cached_has_bits, 0x003e0000U)) {
1717 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1718 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1719 this_._internal_num_random_lns_tries());
1722 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1723 total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
1724 this_._internal_max_number_of_backtracks_in_ls());
1727 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1728 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1729 this_._internal_max_number_of_conflicts_for_quick_check());
1732 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1733 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1734 this_._internal_max_number_of_conflicts_in_random_solution_generation());
1737 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1738 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
1739 this_._internal_max_number_of_explored_assignments_per_try_in_ls());
1742 if (BatchCheckHasBit(cached_has_bits, 0x79000000U)) {
1744 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1745 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1746 this_._internal_number_of_solvers());
1749 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
1750 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1751 this_._internal_decomposer_num_variables_threshold());
1754 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
1755 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1756 this_._internal_num_bop_solvers_used_by_decomposition());
1759 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
1760 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1761 this_._internal_guided_sat_conflicts_chunk());
1764 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1765 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
1766 this_._internal_default_solver_optimizer_sets());
1769 cached_has_bits = this_._impl_._has_bits_[1];
1770 total_size +=
static_cast<bool>(0x00000008U & cached_has_bits) * 10;
1771 total_size += ::absl::popcount(0x00000003U & cached_has_bits) * 3;
1772 if (BatchCheckHasBit(cached_has_bits, 0x00000014U)) {
1774 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1775 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1776 this_._internal_max_lp_solve_for_feasibility_problems());
1779 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1780 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1781 this_._internal_max_num_broken_constraints_in_ls());
1784 return this_.MaybeComputeUnknownFieldsSize(total_size,
1785 &this_._impl_._cached_size_);
1788void BopParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,
1789 const ::google::protobuf::MessageLite& from_msg) {
1793 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1794 from.CheckHasBitConsistency();
1798 ABSL_DCHECK_NE(&from, _this);
1799 ::uint32_t cached_has_bits = 0;
1800 (void)cached_has_bits;
1802 cached_has_bits = from._impl_._has_bits_[0];
1803 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1804 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
1805 _this->_internal_mutable_solver_optimizer_sets()->InternalMergeFromWithArena(
1806 ::google::protobuf::MessageLite::internal_visibility(), arena,
1807 from._internal_solver_optimizer_sets());
1809 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1810 _this->_impl_.prune_search_tree_ = from._impl_.prune_search_tree_;
1812 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1813 _this->_impl_.sort_constraints_by_num_terms_ = from._impl_.sort_constraints_by_num_terms_;
1815 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1816 _this->_impl_.log_search_progress_ = from._impl_.log_search_progress_;
1818 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1819 _this->_impl_.use_symmetry_ = from._impl_.use_symmetry_;
1821 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1822 _this->_impl_.synchronization_type_ = from._impl_.synchronization_type_;
1824 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1825 _this->_impl_.use_lp_strong_branching_ = from._impl_.use_lp_strong_branching_;
1827 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1828 _this->_impl_.max_number_of_consecutive_failing_optimizer_calls_ = from._impl_.max_number_of_consecutive_failing_optimizer_calls_;
1831 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
1832 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
1833 _this->_impl_.max_time_in_seconds_ = from._impl_.max_time_in_seconds_;
1835 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1836 _this->_impl_.max_num_decisions_in_ls_ = from._impl_.max_num_decisions_in_ls_;
1838 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1839 _this->_impl_.random_seed_ = from._impl_.random_seed_;
1841 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1842 _this->_impl_.num_relaxed_vars_ = from._impl_.num_relaxed_vars_;
1844 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1845 _this->_impl_.max_number_of_conflicts_in_random_lns_ = from._impl_.max_number_of_conflicts_in_random_lns_;
1847 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1848 _this->_impl_.compute_estimated_impact_ = from._impl_.compute_estimated_impact_;
1850 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
1851 _this->_impl_.use_random_lns_ = from._impl_.use_random_lns_;
1853 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1854 _this->_impl_.use_lp_lns_ = from._impl_.use_lp_lns_;
1857 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
1858 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1859 _this->_impl_.use_sat_to_choose_lns_neighbourhood_ = from._impl_.use_sat_to_choose_lns_neighbourhood_;
1861 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1862 _this->_impl_.num_random_lns_tries_ = from._impl_.num_random_lns_tries_;
1864 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1865 _this->_impl_.max_number_of_backtracks_in_ls_ = from._impl_.max_number_of_backtracks_in_ls_;
1867 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1868 _this->_impl_.max_number_of_conflicts_for_quick_check_ = from._impl_.max_number_of_conflicts_for_quick_check_;
1870 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1871 _this->_impl_.max_number_of_conflicts_in_random_solution_generation_ = from._impl_.max_number_of_conflicts_in_random_solution_generation_;
1873 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1874 _this->_impl_.max_number_of_explored_assignments_per_try_in_ls_ = from._impl_.max_number_of_explored_assignments_per_try_in_ls_;
1876 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1877 _this->_impl_.use_transposition_table_in_ls_ = from._impl_.use_transposition_table_in_ls_;
1879 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1880 _this->_impl_.use_learned_binary_clauses_in_lp_ = from._impl_.use_learned_binary_clauses_in_lp_;
1883 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
1884 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1885 _this->_impl_.number_of_solvers_ = from._impl_.number_of_solvers_;
1887 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1888 _this->_impl_.max_deterministic_time_ = from._impl_.max_deterministic_time_;
1890 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1891 _this->_impl_.relative_gap_limit_ = from._impl_.relative_gap_limit_;
1893 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
1894 _this->_impl_.decomposer_num_variables_threshold_ = from._impl_.decomposer_num_variables_threshold_;
1896 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
1897 _this->_impl_.num_bop_solvers_used_by_decomposition_ = from._impl_.num_bop_solvers_used_by_decomposition_;
1899 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
1900 _this->_impl_.guided_sat_conflicts_chunk_ = from._impl_.guided_sat_conflicts_chunk_;
1902 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1903 _this->_internal_set_default_solver_optimizer_sets(from._internal_default_solver_optimizer_sets());
1905 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
1906 _this->_impl_.decomposed_problem_min_time_in_seconds_ = from._impl_.decomposed_problem_min_time_in_seconds_;
1909 cached_has_bits = from._impl_._has_bits_[1];
1910 if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
1911 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1912 _this->_impl_.use_potential_one_flip_repairs_in_ls_ = from._impl_.use_potential_one_flip_repairs_in_ls_;
1914 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1915 _this->_impl_.exploit_symmetry_in_sat_first_solution_ = from._impl_.exploit_symmetry_in_sat_first_solution_;
1917 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1918 _this->_impl_.max_lp_solve_for_feasibility_problems_ = from._impl_.max_lp_solve_for_feasibility_problems_;
1920 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1921 _this->_impl_.lp_max_deterministic_time_ = from._impl_.lp_max_deterministic_time_;
1923 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1924 _this->_impl_.max_num_broken_constraints_in_ls_ = from._impl_.max_num_broken_constraints_in_ls_;
1927 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
1928 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1929 from._internal_metadata_);
1934 if (&from ==
this)
return;
1940void BopParameters::InternalSwap(
BopParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
1942 auto* arena = GetArena();
1943 ABSL_DCHECK_EQ(arena, other->GetArena());
1944 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1945 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1946 swap(
_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
1947 _impl_.solver_optimizer_sets_.InternalSwap(&other->_impl_.solver_optimizer_sets_);
1948 ::google::protobuf::internal::memswap<
1952 reinterpret_cast<char*
>(&
_impl_.prune_search_tree_),
1953 reinterpret_cast<char*
>(&other->_impl_.prune_search_tree_));
1954 ::_pbi::ArenaStringPtr::InternalSwap(&
_impl_.default_solver_optimizer_sets_, &other->_impl_.default_solver_optimizer_sets_, arena);
1955 ::google::protobuf::internal::memswap<
1959 reinterpret_cast<char*
>(&
_impl_.decomposed_problem_min_time_in_seconds_),
1960 reinterpret_cast<char*
>(&other->_impl_.decomposed_problem_min_time_in_seconds_));
1964 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1974PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
1977 ::std::false_type{});
1978#include "google/protobuf/port_undef.inc"
const ::uint32_t TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold)
static constexprconst ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE file_level_service_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto
static PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 ::std::false_type _static_init2_
static const ::_pb::EnumDescriptor *PROTOBUF_NONNULL file_level_enum_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto[2]
static const ::_pb::Message *PROTOBUF_NONNULL const file_default_instances[]
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto
::absl::once_flag descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_once
decltype(::std::declval< BopOptimizerMethod >()._impl_._has_bits_) HasBits
static constexpr ::int32_t kHasBitsOffset
friend class ::google::protobuf::MessageLite
void MergeFrom(const BopOptimizerMethod &from)
static constexpr auto InternalGenerateClassData_()
void CopyFrom(const BopOptimizerMethod &from)
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
~BopOptimizerMethod() PROTOBUF_FINAL
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
friend void swap(BopOptimizerMethod &a, BopOptimizerMethod &b)
::size_t ByteSizeLong() const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
::google::protobuf::Metadata GetMetadata() const
static constexpr ::int32_t kHasBitsOffset
friend class ::google::protobuf::MessageLite
void MergeFrom(const BopParameters &from)
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
void CopyFrom(const BopParameters &from)
static constexpr auto InternalGenerateClassData_()
::size_t ByteSizeLong() const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend void swap(BopParameters &a, BopParameters &b)
::google::protobuf::Metadata GetMetadata() const
~BopParameters() PROTOBUF_FINAL
friend class ::google::protobuf::Arena
static constexpr ::int32_t kHasBitsOffset
decltype(::std::declval< BopSolverOptimizerSet >()._impl_._has_bits_) HasBits
friend class ::google::protobuf::MessageLite
static constexpr auto InternalGenerateClassData_()
::size_t ByteSizeLong() const final
void MergeFrom(const BopSolverOptimizerSet &from)
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
friend void swap(BopSolverOptimizerSet &a, BopSolverOptimizerSet &b)
~BopSolverOptimizerSet() PROTOBUF_FINAL
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
void CopyFrom(const BopSolverOptimizerSet &from)
::google::protobuf::Metadata GetMetadata() const
friend class ::google::protobuf::Arena
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas
PROTOBUF_CONSTINIT const uint32_t BopOptimizerMethod_OptimizerType_internal_data_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL BopOptimizerMethod_OptimizerType_descriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BopParametersDefaultTypeInternal _BopParameters_default_instance_
PROTOBUF_CONSTINIT const uint32_t BopParameters_ThreadSynchronizationType_internal_data_[]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BopOptimizerMethodDefaultTypeInternal _BopOptimizerMethod_default_instance_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull BopSolverOptimizerSet_class_data_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL BopParameters_ThreadSynchronizationType_descriptor()
BopOptimizerMethod_OptimizerType
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull BopParameters_class_data_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BopSolverOptimizerSetDefaultTypeInternal _BopSolverOptimizerSet_default_instance_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull BopOptimizerMethod_class_data_
BopParameters_ThreadSynchronizationType
PROTOBUF_CONSTEXPR BopOptimizerMethodDefaultTypeInternal()
~BopOptimizerMethodDefaultTypeInternal()
BopOptimizerMethod _instance
PROTOBUF_CONSTEXPR BopParametersDefaultTypeInternal()
~BopParametersDefaultTypeInternal()
PROTOBUF_CONSTEXPR BopSolverOptimizerSetDefaultTypeInternal()
BopSolverOptimizerSet _instance
~BopSolverOptimizerSetDefaultTypeInternal()