Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
bop_parameters.pb.cc
Go to the documentation of this file.
1// Generated by the protocol buffer compiler. DO NOT EDIT!
2// NO CHECKED-IN PROTOBUF GENCODE
3// source: ortools/bop/bop_parameters.proto
4// Protobuf C++ Version: 6.31.1
5
7
8#include <algorithm>
9#include <type_traits>
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"
19// @@protoc_insertion_point(includes)
20
21// Must be included last.
22#include "google/protobuf/port_def.inc"
23PROTOBUF_PRAGMA_INIT_SEG
24namespace _pb = ::google::protobuf;
26namespace _fl = ::google::protobuf::internal::field_layout;
27namespace operations_research {
28namespace bop {
29
30inline constexpr BopOptimizerMethod::Impl_::Impl_(
31 ::_pbi::ConstantInitialized) noexcept
32 : _cached_size_{0},
34
35template <typename>
36PROTOBUF_CONSTEXPR BopOptimizerMethod::BopOptimizerMethod(::_pbi::ConstantInitialized)
37#if defined(PROTOBUF_CUSTOM_VTABLE)
38 : ::google::protobuf::Message(BopOptimizerMethod_class_data_.base()),
39#else // PROTOBUF_CUSTOM_VTABLE
40 : ::google::protobuf::Message(),
41#endif // PROTOBUF_CUSTOM_VTABLE
42 _impl_(::_pbi::ConstantInitialized()) {
43}
51
52PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
54
55inline constexpr BopSolverOptimizerSet::Impl_::Impl_(
56 ::_pbi::ConstantInitialized) noexcept
57 : methods_{},
58 _cached_size_{0} {}
59
60template <typename>
61PROTOBUF_CONSTEXPR BopSolverOptimizerSet::BopSolverOptimizerSet(::_pbi::ConstantInitialized)
62#if defined(PROTOBUF_CUSTOM_VTABLE)
63 : ::google::protobuf::Message(BopSolverOptimizerSet_class_data_.base()),
64#else // PROTOBUF_CUSTOM_VTABLE
65 : ::google::protobuf::Message(),
66#endif // PROTOBUF_CUSTOM_VTABLE
67 _impl_(::_pbi::ConstantInitialized()) {
68}
76
77PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
79
80inline constexpr BopParameters::Impl_::Impl_(
81 ::_pbi::ConstantInitialized) noexcept
82 : _cached_size_{0},
83 solver_optimizer_sets_{},
84 default_solver_optimizer_sets_(
85 &::google::protobuf::internal::fixed_address_empty_string,
86 ::_pbi::ConstantInitialized()),
87 prune_search_tree_{false},
88 sort_constraints_by_num_terms_{false},
89 log_search_progress_{false},
90 use_symmetry_{false},
91 synchronization_type_{static_cast< ::operations_research::bop::BopParameters_ThreadSynchronizationType >(0)},
92 max_number_of_consecutive_failing_optimizer_calls_{0},
93 use_lp_strong_branching_{false},
94 use_potential_one_flip_repairs_in_ls_{false},
95 exploit_symmetry_in_sat_first_solution_{false},
96 decomposed_problem_min_time_in_seconds_{0},
97 max_lp_solve_for_feasibility_problems_{0},
98 max_time_in_seconds_{std::numeric_limits<double>::infinity()},
99 max_num_decisions_in_ls_{4},
100 random_seed_{8},
101 num_relaxed_vars_{10},
102 max_number_of_conflicts_in_random_lns_{2500},
103 compute_estimated_impact_{true},
104 use_random_lns_{true},
105 use_lp_lns_{true},
106 use_sat_to_choose_lns_neighbourhood_{true},
107 num_random_lns_tries_{1},
108 max_number_of_backtracks_in_ls_{::int64_t{100000000}},
109 max_number_of_conflicts_for_quick_check_{10},
110 max_number_of_conflicts_in_random_solution_generation_{500},
111 max_number_of_explored_assignments_per_try_in_ls_{::int64_t{10000}},
112 use_transposition_table_in_ls_{true},
113 use_learned_binary_clauses_in_lp_{true},
114 number_of_solvers_{1},
115 max_deterministic_time_{std::numeric_limits<double>::infinity()},
116 relative_gap_limit_{0.0001},
117 decomposer_num_variables_threshold_{50},
118 num_bop_solvers_used_by_decomposition_{1},
119 guided_sat_conflicts_chunk_{1000},
120 max_num_broken_constraints_in_ls_{2147483647},
121 lp_max_deterministic_time_{1} {}
122
123template <typename>
124PROTOBUF_CONSTEXPR BopParameters::BopParameters(::_pbi::ConstantInitialized)
125#if defined(PROTOBUF_CUSTOM_VTABLE)
126 : ::google::protobuf::Message(BopParameters_class_data_.base()),
127#else // PROTOBUF_CUSTOM_VTABLE
128 : ::google::protobuf::Message(),
129#endif // PROTOBUF_CUSTOM_VTABLE
130 _impl_(::_pbi::ConstantInitialized()) {
131}
133 PROTOBUF_CONSTEXPR BopParametersDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
135 union {
137 };
138};
139
140PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
142} // namespace bop
143} // namespace operations_research
144static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
146static constexpr const ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE
148const ::uint32_t
150 protodesc_cold) = {
151 0x081, // bitmap
152 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopOptimizerMethod, _impl_._has_bits_),
153 4, // hasbit index offset
154 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopOptimizerMethod, _impl_.type_),
155 0,
156 0x000, // bitmap
157 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopSolverOptimizerSet, _impl_.methods_),
158 0x081, // bitmap
159 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_._has_bits_),
160 40, // hasbit index offset
161 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_time_in_seconds_),
162 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_deterministic_time_),
163 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.lp_max_deterministic_time_),
164 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_number_of_consecutive_failing_optimizer_calls_),
165 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.relative_gap_limit_),
166 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_num_decisions_in_ls_),
167 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_num_broken_constraints_in_ls_),
168 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.log_search_progress_),
169 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.compute_estimated_impact_),
170 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.prune_search_tree_),
171 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.sort_constraints_by_num_terms_),
172 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.use_random_lns_),
173 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.random_seed_),
174 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.num_relaxed_vars_),
175 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_number_of_conflicts_in_random_lns_),
176 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.num_random_lns_tries_),
177 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_number_of_backtracks_in_ls_),
178 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.use_lp_lns_),
179 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.use_sat_to_choose_lns_neighbourhood_),
180 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_number_of_conflicts_for_quick_check_),
181 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.use_symmetry_),
182 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.exploit_symmetry_in_sat_first_solution_),
183 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_number_of_conflicts_in_random_solution_generation_),
184 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_number_of_explored_assignments_per_try_in_ls_),
185 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.use_transposition_table_in_ls_),
186 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.use_potential_one_flip_repairs_in_ls_),
187 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.use_learned_binary_clauses_in_lp_),
188 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.number_of_solvers_),
189 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.synchronization_type_),
190 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.solver_optimizer_sets_),
191 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.default_solver_optimizer_sets_),
192 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.use_lp_strong_branching_),
193 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.decomposer_num_variables_threshold_),
194 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.num_bop_solvers_used_by_decomposition_),
195 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.decomposed_problem_min_time_in_seconds_),
196 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.guided_sat_conflicts_chunk_),
197 PROTOBUF_FIELD_OFFSET(::operations_research::bop::BopParameters, _impl_.max_lp_solve_for_feasibility_problems_),
198 12,
199 29,
200 35,
201 6,
202 30,
203 13,
204 34,
205 3,
206 17,
207 1,
208 2,
209 18,
210 14,
211 15,
212 16,
213 21,
214 22,
215 19,
216 20,
217 23,
218 4,
219 9,
220 24,
221 25,
222 26,
223 8,
224 27,
225 28,
226 5,
227 ~0u,
228 0,
229 7,
230 31,
231 32,
232 10,
233 33,
234 11,
235};
236
237static const ::_pbi::MigrationSchema
238 schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
242};
248const char descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
249 protodesc_cold) = {
250 "\n ortools/bop/bop_parameters.proto\022\027oper"
251 "ations_research.bop\"\204\004\n\022BopOptimizerMeth"
252 "od\022G\n\004type\030\001 \001(\01629.operations_research.b"
253 "op.BopOptimizerMethod.OptimizerType\"\244\003\n\r"
254 "OptimizerType\022\022\n\016SAT_CORE_BASED\020\000\022\025\n\021SAT"
255 "_LINEAR_SEARCH\020\017\022\025\n\021LINEAR_RELAXATION\020\001\022"
256 "\020\n\014LOCAL_SEARCH\020\002\022\031\n\025RANDOM_FIRST_SOLUTI"
257 "ON\020\003\022\031\n\025RANDOM_CONSTRAINT_LNS\020\004\022\027\n\023RANDO"
258 "M_VARIABLE_LNS\020\005\022\020\n\014COMPLETE_LNS\020\007\022\025\n\021LP"
259 "_FIRST_SOLUTION\020\010\022\034\n\030OBJECTIVE_FIRST_SOL"
260 "UTION\020\t\022\036\n\032USER_GUIDED_FIRST_SOLUTION\020\016\022"
261 "&\n\"RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP\020\013\022"
262 "$\n RANDOM_VARIABLE_LNS_GUIDED_BY_LP\020\014\022\026\n"
263 "\022RELATION_GRAPH_LNS\020\020\022#\n\037RELATION_GRAPH_"
264 "LNS_GUIDED_BY_LP\020\021\"U\n\025BopSolverOptimizer"
265 "Set\022<\n\007methods\030\001 \003(\0132+.operations_resear"
266 "ch.bop.BopOptimizerMethod\"\356\023\n\rBopParamet"
267 "ers\022 \n\023max_time_in_seconds\030\001 \001(\001:\003inf\022#\n"
268 "\026max_deterministic_time\030\033 \001(\001:\003inf\022$\n\031lp"
269 "_max_deterministic_time\030% \001(\001:\0011\0229\n1max_"
270 "number_of_consecutive_failing_optimizer_"
271 "calls\030# \001(\005\022\"\n\022relative_gap_limit\030\034 \001(\001:"
272 "\0060.0001\022\"\n\027max_num_decisions_in_ls\030\002 \001(\005"
273 ":\0014\0224\n max_num_broken_constraints_in_ls\030"
274 "& \001(\005:\n2147483647\022\"\n\023log_search_progress"
275 "\030\016 \001(\010:\005false\022&\n\030compute_estimated_impac"
276 "t\030\003 \001(\010:\004true\022 \n\021prune_search_tree\030\004 \001(\010"
277 ":\005false\022,\n\035sort_constraints_by_num_terms"
278 "\030\005 \001(\010:\005false\022\034\n\016use_random_lns\030\006 \001(\010:\004t"
279 "rue\022\026\n\013random_seed\030\007 \001(\005:\0018\022\034\n\020num_relax"
280 "ed_vars\030\010 \001(\005:\00210\0223\n%max_number_of_confl"
281 "icts_in_random_lns\030\t \001(\005:\0042500\022\037\n\024num_ra"
282 "ndom_lns_tries\030\n \001(\005:\0011\0221\n\036max_number_of"
283 "_backtracks_in_ls\030\013 \001(\003:\t100000000\022\030\n\nus"
284 "e_lp_lns\030\014 \001(\010:\004true\0221\n#use_sat_to_choos"
285 "e_lns_neighbourhood\030\017 \001(\010:\004true\0223\n\'max_n"
286 "umber_of_conflicts_for_quick_check\030\020 \001(\005"
287 ":\00210\022\033\n\014use_symmetry\030\021 \001(\010:\005false\0225\n&exp"
288 "loit_symmetry_in_sat_first_solution\030( \001("
289 "\010:\005false\022B\n5max_number_of_conflicts_in_r"
290 "andom_solution_generation\030\024 \001(\005:\003500\022\?\n0"
291 "max_number_of_explored_assignments_per_t"
292 "ry_in_ls\030\025 \001(\003:\00510000\022+\n\035use_transpositi"
293 "on_table_in_ls\030\026 \001(\010:\004true\0223\n$use_potent"
294 "ial_one_flip_repairs_in_ls\030\' \001(\010:\005false\022"
295 ".\n use_learned_binary_clauses_in_lp\030\027 \001("
296 "\010:\004true\022\034\n\021number_of_solvers\030\030 \001(\005:\0011\022r\n"
297 "\024synchronization_type\030\031 \001(\0162@.operations"
298 "_research.bop.BopParameters.ThreadSynchr"
299 "onizationType:\022NO_SYNCHRONIZATION\022M\n\025sol"
300 "ver_optimizer_sets\030\032 \003(\0132..operations_re"
301 "search.bop.BopSolverOptimizerSet\022\362\005\n\035def"
302 "ault_solver_optimizer_sets\030! \001(\t:\312\005metho"
303 "ds:{type:LOCAL_SEARCH } "
304 " methods:{type:RANDOM_FIRST_SOLUTIO"
305 "N } methods:{type:LINEAR_RE"
306 "LAXATION } methods:{typ"
307 "e:LP_FIRST_SOLUTION } m"
308 "ethods:{type:OBJECTIVE_FIRST_SOLUTION } "
309 " methods:{type:USER_GUIDED_FIRS"
310 "T_SOLUTION } methods:{type:RANDO"
311 "M_CONSTRAINT_LNS_GUIDED_BY_LP } methods:"
312 "{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP }"
313 " methods:{type:RELATION_GRAPH_LNS } "
314 " methods:{type:RELATION_GRA"
315 "PH_LNS_GUIDED_BY_LP } methods:{type:R"
316 "ANDOM_CONSTRAINT_LNS } meth"
317 "ods:{type:RANDOM_VARIABLE_LNS } "
318 " methods:{type:SAT_CORE_BASED } "
319 " methods:{type:COMPLETE"
320 "_LNS } \022&\n\027use_lp_"
321 "strong_branching\030\035 \001(\010:\005false\022.\n\"decompo"
322 "ser_num_variables_threshold\030\036 \001(\005:\00250\0220\n"
323 "%num_bop_solvers_used_by_decomposition\030\037"
324 " \001(\005:\0011\0221\n&decomposed_problem_min_time_i"
325 "n_seconds\030$ \001(\001:\0010\022(\n\032guided_sat_conflic"
326 "ts_chunk\030\" \001(\005:\0041000\0220\n%max_lp_solve_for"
327 "_feasibility_problems\030) \001(\005:\0010\"b\n\031Thread"
328 "SynchronizationType\022\026\n\022NO_SYNCHRONIZATIO"
329 "N\020\000\022\023\n\017SYNCHRONIZE_ALL\020\001\022\030\n\024SYNCHRONIZE_"
330 "ON_RIGHT\020\002B/\n\026com.google.ortools.bopP\001\252\002"
331 "\022Google.OrTools.Bop"
332};
334PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto = {
335 false,
336 false,
337 3259,
338 descriptor_table_protodef_ortools_2fbop_2fbop_5fparameters_2eproto,
339 "ortools/bop/bop_parameters.proto",
341 nullptr,
342 0,
343 3,
344 schemas,
349};
350namespace operations_research {
351namespace bop {
352const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL BopOptimizerMethod_OptimizerType_descriptor() {
353 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto);
355}
356PROTOBUF_CONSTINIT const uint32_t BopOptimizerMethod_OptimizerType_internal_data_[] = {
357 393216u, 32u, 3950u, };
358const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL BopParameters_ThreadSynchronizationType_descriptor() {
359 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto);
361}
362PROTOBUF_CONSTINIT const uint32_t BopParameters_ThreadSynchronizationType_internal_data_[] = {
363 196608u, 0u, };
364// ===================================================================
365
366class BopOptimizerMethod::_Internal {
367 public:
368 using HasBits =
369 decltype(::std::declval<BopOptimizerMethod>()._impl_._has_bits_);
370 static constexpr ::int32_t kHasBitsOffset =
371 8 * PROTOBUF_FIELD_OFFSET(BopOptimizerMethod, _impl_._has_bits_);
372};
373
374BopOptimizerMethod::BopOptimizerMethod(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
375#if defined(PROTOBUF_CUSTOM_VTABLE)
376 : ::google::protobuf::Message(arena, BopOptimizerMethod_class_data_.base()) {
377#else // PROTOBUF_CUSTOM_VTABLE
378 : ::google::protobuf::Message(arena) {
379#endif // PROTOBUF_CUSTOM_VTABLE
380 SharedCtor(arena);
381 // @@protoc_insertion_point(arena_constructor:operations_research.bop.BopOptimizerMethod)
382}
384 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const BopOptimizerMethod& from)
385#if defined(PROTOBUF_CUSTOM_VTABLE)
386 : ::google::protobuf::Message(arena, BopOptimizerMethod_class_data_.base()),
387#else // PROTOBUF_CUSTOM_VTABLE
388 : ::google::protobuf::Message(arena),
389#endif // PROTOBUF_CUSTOM_VTABLE
390 _impl_(from._impl_) {
391 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
392 from._internal_metadata_);
393}
394PROTOBUF_NDEBUG_INLINE BopOptimizerMethod::Impl_::Impl_(
395 ::google::protobuf::internal::InternalVisibility visibility,
396 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
397 : _cached_size_{0} {}
398
399inline void BopOptimizerMethod::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
400 new (&_impl_) Impl_(internal_visibility(), arena);
401 _impl_.type_ = {};
402}
404 // @@protoc_insertion_point(destructor:operations_research.bop.BopOptimizerMethod)
405 SharedDtor(*this);
406}
407inline void BopOptimizerMethod::SharedDtor(MessageLite& self) {
408 BopOptimizerMethod& this_ = static_cast<BopOptimizerMethod&>(self);
409 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
410 ABSL_DCHECK(this_.GetArena() == nullptr);
411 this_._impl_.~Impl_();
412}
413
414inline void* PROTOBUF_NONNULL BopOptimizerMethod::PlacementNew_(
415 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
416 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
417 return ::new (mem) BopOptimizerMethod(arena);
418}
420 return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(BopOptimizerMethod),
421 alignof(BopOptimizerMethod));
422}
424 return ::google::protobuf::internal::ClassDataFull{
425 ::google::protobuf::internal::ClassData{
427 &_table_.header,
428 nullptr, // OnDemandRegisterArenaDtor
429 nullptr, // IsInitialized
430 &BopOptimizerMethod::MergeImpl,
431 ::google::protobuf::Message::GetNewImpl<BopOptimizerMethod>(),
432#if defined(PROTOBUF_CUSTOM_VTABLE)
433 &BopOptimizerMethod::SharedDtor,
434 ::google::protobuf::Message::GetClearImpl<BopOptimizerMethod>(), &BopOptimizerMethod::ByteSizeLong,
436#endif // PROTOBUF_CUSTOM_VTABLE
437 PROTOBUF_FIELD_OFFSET(BopOptimizerMethod, _impl_._cached_size_),
438 false,
439 },
440 &BopOptimizerMethod::kDescriptorMethods,
442 nullptr, // tracker
443 };
444}
445
446PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
447 ::google::protobuf::internal::ClassDataFull BopOptimizerMethod_class_data_ =
449
450PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
452 ::google::protobuf::internal::PrefetchToLocalCache(&BopOptimizerMethod_class_data_);
453 ::google::protobuf::internal::PrefetchToLocalCache(BopOptimizerMethod_class_data_.tc_table);
454 return BopOptimizerMethod_class_data_.base();
455}
456PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
457const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
458BopOptimizerMethod::_table_ = {
459 {
460 PROTOBUF_FIELD_OFFSET(BopOptimizerMethod, _impl_._has_bits_),
461 0, // no _extensions_
462 1, 0, // max_field_number, fast_idx_mask
463 offsetof(decltype(_table_), field_lookup_table),
464 4294967294, // skipmap
465 offsetof(decltype(_table_), field_entries),
466 1, // num_field_entries
467 1, // num_aux_entries
468 offsetof(decltype(_table_), aux_entries),
470 nullptr, // post_loop_handler
471 ::_pbi::TcParser::GenericFallback, // fallback
472 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
473 ::_pbi::TcParser::GetTable<::operations_research::bop::BopOptimizerMethod>(), // to_prefetch
474 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
475 }, {{
476 // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
477 {::_pbi::TcParser::FastEvS1,
478 {8, 0, 0, PROTOBUF_FIELD_OFFSET(BopOptimizerMethod, _impl_.type_)}},
479 }}, {{
480 65535, 65535
481 }}, {{
482 // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
483 {PROTOBUF_FIELD_OFFSET(BopOptimizerMethod, _impl_.type_), _Internal::kHasBitsOffset + 0, 0,
484 (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
485 }},
486 {{
488 }},
489 {{
490 }},
491};
492PROTOBUF_NOINLINE void BopOptimizerMethod::Clear() {
493// @@protoc_insertion_point(message_clear_start:operations_research.bop.BopOptimizerMethod)
494 ::google::protobuf::internal::TSanWrite(&_impl_);
495 ::uint32_t cached_has_bits = 0;
496 // Prevent compiler warnings about cached_has_bits being unused
497 (void) cached_has_bits;
498
499 _impl_.type_ = 0;
500 _impl_._has_bits_.Clear();
501 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
502}
503
504#if defined(PROTOBUF_CUSTOM_VTABLE)
505::uint8_t* PROTOBUF_NONNULL BopOptimizerMethod::_InternalSerialize(
506 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
507 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
508 const BopOptimizerMethod& this_ = static_cast<const BopOptimizerMethod&>(base);
509#else // PROTOBUF_CUSTOM_VTABLE
510::uint8_t* PROTOBUF_NONNULL BopOptimizerMethod::_InternalSerialize(
511 ::uint8_t* PROTOBUF_NONNULL target,
512 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
513 const BopOptimizerMethod& this_ = *this;
514#endif // PROTOBUF_CUSTOM_VTABLE
515 // @@protoc_insertion_point(serialize_to_array_start:operations_research.bop.BopOptimizerMethod)
516 ::uint32_t cached_has_bits = 0;
517 (void)cached_has_bits;
518
519 cached_has_bits = this_._impl_._has_bits_[0];
520 // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
521 if ((cached_has_bits & 0x00000001u) != 0) {
522 target = stream->EnsureSpace(target);
523 target = ::_pbi::WireFormatLite::WriteEnumToArray(
524 1, this_._internal_type(), target);
525 }
526
527 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
528 target =
529 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
530 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
531 }
532 // @@protoc_insertion_point(serialize_to_array_end:operations_research.bop.BopOptimizerMethod)
533 return target;
534}
535
536#if defined(PROTOBUF_CUSTOM_VTABLE)
538 const BopOptimizerMethod& this_ = static_cast<const BopOptimizerMethod&>(base);
539#else // PROTOBUF_CUSTOM_VTABLE
540::size_t BopOptimizerMethod::ByteSizeLong() const {
541 const BopOptimizerMethod& this_ = *this;
542#endif // PROTOBUF_CUSTOM_VTABLE
543 // @@protoc_insertion_point(message_byte_size_start:operations_research.bop.BopOptimizerMethod)
544 ::size_t total_size = 0;
545
546 ::uint32_t cached_has_bits = 0;
547 // Prevent compiler warnings about cached_has_bits being unused
548 (void)cached_has_bits;
549
550 {
551 // optional .operations_research.bop.BopOptimizerMethod.OptimizerType type = 1;
552 cached_has_bits = this_._impl_._has_bits_[0];
553 if ((cached_has_bits & 0x00000001u) != 0) {
554 total_size += 1 +
555 ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
556 }
557 }
558 return this_.MaybeComputeUnknownFieldsSize(total_size,
559 &this_._impl_._cached_size_);
560}
561
562void BopOptimizerMethod::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
563 auto* const _this = static_cast<BopOptimizerMethod*>(&to_msg);
564 auto& from = static_cast<const BopOptimizerMethod&>(from_msg);
565 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.bop.BopOptimizerMethod)
566 ABSL_DCHECK_NE(&from, _this);
567 ::uint32_t cached_has_bits = 0;
568 (void) cached_has_bits;
569
570 cached_has_bits = from._impl_._has_bits_[0];
571 if ((cached_has_bits & 0x00000001u) != 0) {
572 _this->_impl_.type_ = from._impl_.type_;
573 }
574 _this->_impl_._has_bits_[0] |= cached_has_bits;
575 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
576}
577
579// @@protoc_insertion_point(class_specific_copy_from_start:operations_research.bop.BopOptimizerMethod)
580 if (&from == this) return;
581 Clear();
582 MergeFrom(from);
583}
584
585
586void BopOptimizerMethod::InternalSwap(BopOptimizerMethod* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
587 using ::std::swap;
588 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
589 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
590 swap(_impl_.type_, other->_impl_.type_);
591}
592
593::google::protobuf::Metadata BopOptimizerMethod::GetMetadata() const {
594 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
595}
596// ===================================================================
597
599 public:
601
602BopSolverOptimizerSet::BopSolverOptimizerSet(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
603#if defined(PROTOBUF_CUSTOM_VTABLE)
604 : ::google::protobuf::Message(arena, BopSolverOptimizerSet_class_data_.base()) {
605#else // PROTOBUF_CUSTOM_VTABLE
606 : ::google::protobuf::Message(arena) {
607#endif // PROTOBUF_CUSTOM_VTABLE
608 SharedCtor(arena);
609 // @@protoc_insertion_point(arena_constructor:operations_research.bop.BopSolverOptimizerSet)
610}
611PROTOBUF_NDEBUG_INLINE BopSolverOptimizerSet::Impl_::Impl_(
612 ::google::protobuf::internal::InternalVisibility visibility,
613 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
614 const ::operations_research::bop::BopSolverOptimizerSet& from_msg)
615 : methods_{visibility, arena, from.methods_},
616 _cached_size_{0} {}
617
619 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
621#if defined(PROTOBUF_CUSTOM_VTABLE)
622 : ::google::protobuf::Message(arena, BopSolverOptimizerSet_class_data_.base()) {
623#else // PROTOBUF_CUSTOM_VTABLE
624 : ::google::protobuf::Message(arena) {
625#endif // PROTOBUF_CUSTOM_VTABLE
626 BopSolverOptimizerSet* const _this = this;
627 (void)_this;
628 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
629 from._internal_metadata_);
630 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
631
632 // @@protoc_insertion_point(copy_constructor:operations_research.bop.BopSolverOptimizerSet)
633}
634PROTOBUF_NDEBUG_INLINE BopSolverOptimizerSet::Impl_::Impl_(
635 ::google::protobuf::internal::InternalVisibility visibility,
636 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
637 : methods_{visibility, arena},
638 _cached_size_{0} {}
639
640inline void BopSolverOptimizerSet::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
641 new (&_impl_) Impl_(internal_visibility(), arena);
642}
644 // @@protoc_insertion_point(destructor:operations_research.bop.BopSolverOptimizerSet)
645 SharedDtor(*this);
646}
647inline void BopSolverOptimizerSet::SharedDtor(MessageLite& self) {
648 BopSolverOptimizerSet& this_ = static_cast<BopSolverOptimizerSet&>(self);
649 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
650 ABSL_DCHECK(this_.GetArena() == nullptr);
651 this_._impl_.~Impl_();
652}
653
654inline void* PROTOBUF_NONNULL BopSolverOptimizerSet::PlacementNew_(
655 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
656 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
657 return ::new (mem) BopSolverOptimizerSet(arena);
658}
660 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
661 PROTOBUF_FIELD_OFFSET(BopSolverOptimizerSet, _impl_.methods_) +
662 decltype(BopSolverOptimizerSet::_impl_.methods_)::
663 InternalGetArenaOffset(
664 ::google::protobuf::Message::internal_visibility()),
665 });
666 if (arena_bits.has_value()) {
667 return ::google::protobuf::internal::MessageCreator::ZeroInit(
668 sizeof(BopSolverOptimizerSet), alignof(BopSolverOptimizerSet), *arena_bits);
669 } else {
670 return ::google::protobuf::internal::MessageCreator(&BopSolverOptimizerSet::PlacementNew_,
671 sizeof(BopSolverOptimizerSet),
672 alignof(BopSolverOptimizerSet));
673 }
674}
676 return ::google::protobuf::internal::ClassDataFull{
677 ::google::protobuf::internal::ClassData{
679 &_table_.header,
680 nullptr, // OnDemandRegisterArenaDtor
681 nullptr, // IsInitialized
682 &BopSolverOptimizerSet::MergeImpl,
683 ::google::protobuf::Message::GetNewImpl<BopSolverOptimizerSet>(),
684#if defined(PROTOBUF_CUSTOM_VTABLE)
685 &BopSolverOptimizerSet::SharedDtor,
686 ::google::protobuf::Message::GetClearImpl<BopSolverOptimizerSet>(), &BopSolverOptimizerSet::ByteSizeLong,
688#endif // PROTOBUF_CUSTOM_VTABLE
689 PROTOBUF_FIELD_OFFSET(BopSolverOptimizerSet, _impl_._cached_size_),
690 false,
691 },
692 &BopSolverOptimizerSet::kDescriptorMethods,
694 nullptr, // tracker
695 };
696}
697
698PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
699 ::google::protobuf::internal::ClassDataFull BopSolverOptimizerSet_class_data_ =
702PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
704 ::google::protobuf::internal::PrefetchToLocalCache(&BopSolverOptimizerSet_class_data_);
705 ::google::protobuf::internal::PrefetchToLocalCache(BopSolverOptimizerSet_class_data_.tc_table);
707}
708PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
709const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
710BopSolverOptimizerSet::_table_ = {
711 {
712 0, // no _has_bits_
713 0, // no _extensions_
714 1, 0, // max_field_number, fast_idx_mask
715 offsetof(decltype(_table_), field_lookup_table),
716 4294967294, // skipmap
717 offsetof(decltype(_table_), field_entries),
718 1, // num_field_entries
719 1, // num_aux_entries
720 offsetof(decltype(_table_), aux_entries),
722 nullptr, // post_loop_handler
723 ::_pbi::TcParser::GenericFallback, // fallback
724 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
725 ::_pbi::TcParser::GetTable<::operations_research::bop::BopSolverOptimizerSet>(), // to_prefetch
726 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
727 }, {{
728 // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
729 {::_pbi::TcParser::FastMtR1,
730 {10, 63, 0, PROTOBUF_FIELD_OFFSET(BopSolverOptimizerSet, _impl_.methods_)}},
731 }}, {{
732 65535, 65535
733 }}, {{
734 // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
735 {PROTOBUF_FIELD_OFFSET(BopSolverOptimizerSet, _impl_.methods_), 0, 0,
736 (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
737 }},
738 {{
739 {::_pbi::TcParser::GetTable<::operations_research::bop::BopOptimizerMethod>()},
740 }},
741 {{
742 }},
743};
744PROTOBUF_NOINLINE void BopSolverOptimizerSet::Clear() {
745// @@protoc_insertion_point(message_clear_start:operations_research.bop.BopSolverOptimizerSet)
746 ::google::protobuf::internal::TSanWrite(&_impl_);
747 ::uint32_t cached_has_bits = 0;
748 // Prevent compiler warnings about cached_has_bits being unused
749 (void) cached_has_bits;
750
751 _impl_.methods_.Clear();
752 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
753}
754
755#if defined(PROTOBUF_CUSTOM_VTABLE)
756::uint8_t* PROTOBUF_NONNULL BopSolverOptimizerSet::_InternalSerialize(
757 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
758 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
759 const BopSolverOptimizerSet& this_ = static_cast<const BopSolverOptimizerSet&>(base);
760#else // PROTOBUF_CUSTOM_VTABLE
761::uint8_t* PROTOBUF_NONNULL BopSolverOptimizerSet::_InternalSerialize(
762 ::uint8_t* PROTOBUF_NONNULL target,
763 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
764 const BopSolverOptimizerSet& this_ = *this;
765#endif // PROTOBUF_CUSTOM_VTABLE
766 // @@protoc_insertion_point(serialize_to_array_start:operations_research.bop.BopSolverOptimizerSet)
767 ::uint32_t cached_has_bits = 0;
768 (void)cached_has_bits;
769
770 // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
771 for (unsigned i = 0, n = static_cast<unsigned>(
772 this_._internal_methods_size());
773 i < n; i++) {
774 const auto& repfield = this_._internal_methods().Get(i);
775 target =
776 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
777 1, repfield, repfield.GetCachedSize(),
778 target, stream);
779 }
780
781 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
782 target =
783 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
784 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
785 }
786 // @@protoc_insertion_point(serialize_to_array_end:operations_research.bop.BopSolverOptimizerSet)
787 return target;
788}
789
790#if defined(PROTOBUF_CUSTOM_VTABLE)
792 const BopSolverOptimizerSet& this_ = static_cast<const BopSolverOptimizerSet&>(base);
793#else // PROTOBUF_CUSTOM_VTABLE
795 const BopSolverOptimizerSet& this_ = *this;
796#endif // PROTOBUF_CUSTOM_VTABLE
797 // @@protoc_insertion_point(message_byte_size_start:operations_research.bop.BopSolverOptimizerSet)
798 ::size_t total_size = 0;
799
800 ::uint32_t cached_has_bits = 0;
801 // Prevent compiler warnings about cached_has_bits being unused
802 (void)cached_has_bits;
803
804 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
805 {
806 // repeated .operations_research.bop.BopOptimizerMethod methods = 1;
807 {
808 total_size += 1UL * this_._internal_methods_size();
809 for (const auto& msg : this_._internal_methods()) {
810 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
811 }
812 }
813 }
814 return this_.MaybeComputeUnknownFieldsSize(total_size,
815 &this_._impl_._cached_size_);
816}
817
818void BopSolverOptimizerSet::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
819 auto* const _this = static_cast<BopSolverOptimizerSet*>(&to_msg);
820 auto& from = static_cast<const BopSolverOptimizerSet&>(from_msg);
821 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.bop.BopSolverOptimizerSet)
822 ABSL_DCHECK_NE(&from, _this);
823 ::uint32_t cached_has_bits = 0;
824 (void) cached_has_bits;
825
826 _this->_internal_mutable_methods()->MergeFrom(
827 from._internal_methods());
828 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
829}
830
831void BopSolverOptimizerSet::CopyFrom(const BopSolverOptimizerSet& from) {
832// @@protoc_insertion_point(class_specific_copy_from_start:operations_research.bop.BopSolverOptimizerSet)
833 if (&from == this) return;
834 Clear();
835 MergeFrom(from);
836}
837
838
839void BopSolverOptimizerSet::InternalSwap(BopSolverOptimizerSet* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
840 using ::std::swap;
841 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
842 _impl_.methods_.InternalSwap(&other->_impl_.methods_);
843}
844
845::google::protobuf::Metadata BopSolverOptimizerSet::GetMetadata() const {
846 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
848// ===================================================================
849
851 public:
852 using HasBits =
853 decltype(::std::declval<BopParameters>()._impl_._has_bits_);
854 static constexpr ::int32_t kHasBitsOffset =
855 8 * PROTOBUF_FIELD_OFFSET(BopParameters, _impl_._has_bits_);
856};
858/*static*/ const ::_pbi::LazyString BopParameters::Impl_::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_{
859 {{"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}},
860 {nullptr},
861};
862BopParameters::BopParameters(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
863#if defined(PROTOBUF_CUSTOM_VTABLE)
864 : ::google::protobuf::Message(arena, BopParameters_class_data_.base()) {
865#else // PROTOBUF_CUSTOM_VTABLE
866 : ::google::protobuf::Message(arena) {
867#endif // PROTOBUF_CUSTOM_VTABLE
868 SharedCtor(arena);
869 // @@protoc_insertion_point(arena_constructor:operations_research.bop.BopParameters)
870}
871PROTOBUF_NDEBUG_INLINE BopParameters::Impl_::Impl_(
872 ::google::protobuf::internal::InternalVisibility visibility,
873 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
874 const ::operations_research::bop::BopParameters& from_msg)
875 : _has_bits_{from._has_bits_},
876 _cached_size_{0},
877 solver_optimizer_sets_{visibility, arena, from.solver_optimizer_sets_},
878 default_solver_optimizer_sets_(arena, from.default_solver_optimizer_sets_, _i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_) {}
879
881 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
882 const BopParameters& from)
883#if defined(PROTOBUF_CUSTOM_VTABLE)
884 : ::google::protobuf::Message(arena, BopParameters_class_data_.base()) {
885#else // PROTOBUF_CUSTOM_VTABLE
886 : ::google::protobuf::Message(arena) {
887#endif // PROTOBUF_CUSTOM_VTABLE
888 BopParameters* const _this = this;
889 (void)_this;
890 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
891 from._internal_metadata_);
892 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
893 ::memcpy(reinterpret_cast<char *>(&_impl_) +
894 offsetof(Impl_, prune_search_tree_),
895 reinterpret_cast<const char *>(&from._impl_) +
896 offsetof(Impl_, prune_search_tree_),
897 offsetof(Impl_, lp_max_deterministic_time_) -
898 offsetof(Impl_, prune_search_tree_) +
899 sizeof(Impl_::lp_max_deterministic_time_));
900
901 // @@protoc_insertion_point(copy_constructor:operations_research.bop.BopParameters)
902}
903PROTOBUF_NDEBUG_INLINE BopParameters::Impl_::Impl_(
904 ::google::protobuf::internal::InternalVisibility visibility,
905 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
906 : _cached_size_{0},
907 solver_optimizer_sets_{visibility, arena},
908 default_solver_optimizer_sets_(arena, Impl_::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_),
909 max_time_in_seconds_{std::numeric_limits<double>::infinity()},
910 max_num_decisions_in_ls_{4},
911 random_seed_{8},
912 num_relaxed_vars_{10},
913 max_number_of_conflicts_in_random_lns_{2500},
914 compute_estimated_impact_{true},
915 use_random_lns_{true},
916 use_lp_lns_{true},
917 use_sat_to_choose_lns_neighbourhood_{true},
918 num_random_lns_tries_{1},
919 max_number_of_backtracks_in_ls_{::int64_t{100000000}},
920 max_number_of_conflicts_for_quick_check_{10},
921 max_number_of_conflicts_in_random_solution_generation_{500},
922 max_number_of_explored_assignments_per_try_in_ls_{::int64_t{10000}},
923 use_transposition_table_in_ls_{true},
924 use_learned_binary_clauses_in_lp_{true},
925 number_of_solvers_{1},
926 max_deterministic_time_{std::numeric_limits<double>::infinity()},
927 relative_gap_limit_{0.0001},
928 decomposer_num_variables_threshold_{50},
929 num_bop_solvers_used_by_decomposition_{1},
930 guided_sat_conflicts_chunk_{1000},
931 max_num_broken_constraints_in_ls_{2147483647},
932 lp_max_deterministic_time_{1} {}
933
934inline void BopParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
935 new (&_impl_) Impl_(internal_visibility(), arena);
936 ::memset(reinterpret_cast<char *>(&_impl_) +
937 offsetof(Impl_, prune_search_tree_),
938 0,
939 offsetof(Impl_, max_lp_solve_for_feasibility_problems_) -
940 offsetof(Impl_, prune_search_tree_) +
941 sizeof(Impl_::max_lp_solve_for_feasibility_problems_));
942}
944 // @@protoc_insertion_point(destructor:operations_research.bop.BopParameters)
945 SharedDtor(*this);
947inline void BopParameters::SharedDtor(MessageLite& self) {
948 BopParameters& this_ = static_cast<BopParameters&>(self);
949 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
950 ABSL_DCHECK(this_.GetArena() == nullptr);
951 this_._impl_.default_solver_optimizer_sets_.Destroy();
952 this_._impl_.~Impl_();
953}
954
955inline void* PROTOBUF_NONNULL BopParameters::PlacementNew_(
956 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
957 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
958 return ::new (mem) BopParameters(arena);
959}
960constexpr auto BopParameters::InternalNewImpl_() {
961 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
962 PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.solver_optimizer_sets_) +
963 decltype(BopParameters::_impl_.solver_optimizer_sets_)::
964 InternalGetArenaOffset(
965 ::google::protobuf::Message::internal_visibility()),
966 });
967 if (arena_bits.has_value()) {
968 return ::google::protobuf::internal::MessageCreator::CopyInit(
969 sizeof(BopParameters), alignof(BopParameters), *arena_bits);
970 } else {
971 return ::google::protobuf::internal::MessageCreator(&BopParameters::PlacementNew_,
972 sizeof(BopParameters),
973 alignof(BopParameters));
974 }
975}
977 return ::google::protobuf::internal::ClassDataFull{
978 ::google::protobuf::internal::ClassData{
980 &_table_.header,
981 nullptr, // OnDemandRegisterArenaDtor
982 nullptr, // IsInitialized
983 &BopParameters::MergeImpl,
984 ::google::protobuf::Message::GetNewImpl<BopParameters>(),
985#if defined(PROTOBUF_CUSTOM_VTABLE)
986 &BopParameters::SharedDtor,
987 ::google::protobuf::Message::GetClearImpl<BopParameters>(), &BopParameters::ByteSizeLong,
989#endif // PROTOBUF_CUSTOM_VTABLE
990 PROTOBUF_FIELD_OFFSET(BopParameters, _impl_._cached_size_),
991 false,
992 },
993 &BopParameters::kDescriptorMethods,
995 nullptr, // tracker
996 };
997}
998
999PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1000 ::google::protobuf::internal::ClassDataFull BopParameters_class_data_ =
1002
1003PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1005 ::google::protobuf::internal::PrefetchToLocalCache(&BopParameters_class_data_);
1006 ::google::protobuf::internal::PrefetchToLocalCache(BopParameters_class_data_.tc_table);
1008}
1009PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1010const ::_pbi::TcParseTable<5, 37, 2, 107, 7>
1011BopParameters::_table_ = {
1012 {
1013 PROTOBUF_FIELD_OFFSET(BopParameters, _impl_._has_bits_),
1014 0, // no _extensions_
1015 41, 248, // max_field_number, fast_idx_mask
1016 offsetof(decltype(_table_), field_lookup_table),
1017 2147880960, // skipmap
1018 offsetof(decltype(_table_), field_entries),
1019 37, // num_field_entries
1020 2, // num_aux_entries
1021 offsetof(decltype(_table_), aux_entries),
1023 nullptr, // post_loop_handler
1024 ::_pbi::TcParser::GenericFallback, // fallback
1025 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1026 ::_pbi::TcParser::GetTable<::operations_research::bop::BopParameters>(), // to_prefetch
1027 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
1028 }, {{
1029 {::_pbi::TcParser::MiniParse, {}},
1030 // optional double max_time_in_seconds = 1 [default = inf];
1031 {::_pbi::TcParser::FastF64S1,
1032 {9, 12, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_time_in_seconds_)}},
1033 // optional int32 max_num_decisions_in_ls = 2 [default = 4];
1034 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BopParameters, _impl_.max_num_decisions_in_ls_), 13>(),
1035 {16, 13, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_num_decisions_in_ls_)}},
1036 // optional bool compute_estimated_impact = 3 [default = true];
1037 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BopParameters, _impl_.compute_estimated_impact_), 17>(),
1038 {24, 17, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.compute_estimated_impact_)}},
1039 // optional bool prune_search_tree = 4 [default = false];
1040 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BopParameters, _impl_.prune_search_tree_), 1>(),
1041 {32, 1, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.prune_search_tree_)}},
1042 // optional bool sort_constraints_by_num_terms = 5 [default = false];
1043 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BopParameters, _impl_.sort_constraints_by_num_terms_), 2>(),
1044 {40, 2, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.sort_constraints_by_num_terms_)}},
1045 // optional bool use_random_lns = 6 [default = true];
1046 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BopParameters, _impl_.use_random_lns_), 18>(),
1047 {48, 18, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_random_lns_)}},
1048 // optional int32 random_seed = 7 [default = 8];
1049 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BopParameters, _impl_.random_seed_), 14>(),
1050 {56, 14, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.random_seed_)}},
1051 // optional int32 num_relaxed_vars = 8 [default = 10];
1052 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BopParameters, _impl_.num_relaxed_vars_), 15>(),
1053 {64, 15, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.num_relaxed_vars_)}},
1054 // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
1055 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BopParameters, _impl_.max_number_of_conflicts_in_random_lns_), 16>(),
1056 {72, 16, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_conflicts_in_random_lns_)}},
1057 // optional int32 num_random_lns_tries = 10 [default = 1];
1058 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BopParameters, _impl_.num_random_lns_tries_), 21>(),
1059 {80, 21, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.num_random_lns_tries_)}},
1060 // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1061 {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(BopParameters, _impl_.max_number_of_backtracks_in_ls_), 22>(),
1062 {88, 22, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_backtracks_in_ls_)}},
1063 // optional bool use_lp_lns = 12 [default = true];
1064 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BopParameters, _impl_.use_lp_lns_), 19>(),
1065 {96, 19, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_lp_lns_)}},
1066 {::_pbi::TcParser::MiniParse, {}},
1067 // optional bool log_search_progress = 14 [default = false];
1068 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BopParameters, _impl_.log_search_progress_), 3>(),
1069 {112, 3, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.log_search_progress_)}},
1070 // optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];
1071 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BopParameters, _impl_.use_sat_to_choose_lns_neighbourhood_), 20>(),
1072 {120, 20, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_sat_to_choose_lns_neighbourhood_)}},
1073 // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1074 {::_pbi::TcParser::FastV32S2,
1075 {384, 23, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_conflicts_for_quick_check_)}},
1076 // optional bool use_symmetry = 17 [default = false];
1077 {::_pbi::TcParser::FastV8S2,
1078 {392, 4, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_symmetry_)}},
1079 {::_pbi::TcParser::MiniParse, {}},
1080 // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
1081 {::_pbi::TcParser::FastV32S2,
1082 {664, 6, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_consecutive_failing_optimizer_calls_)}},
1083 // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1084 {::_pbi::TcParser::FastV32S2,
1085 {416, 24, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_conflicts_in_random_solution_generation_)}},
1086 // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1087 {::_pbi::TcParser::FastV64S2,
1088 {424, 25, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_explored_assignments_per_try_in_ls_)}},
1089 // optional bool use_transposition_table_in_ls = 22 [default = true];
1090 {::_pbi::TcParser::FastV8S2,
1091 {432, 26, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_transposition_table_in_ls_)}},
1092 // optional bool use_learned_binary_clauses_in_lp = 23 [default = true];
1093 {::_pbi::TcParser::FastV8S2,
1094 {440, 27, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_learned_binary_clauses_in_lp_)}},
1095 // optional int32 number_of_solvers = 24 [default = 1];
1096 {::_pbi::TcParser::FastV32S2,
1097 {448, 28, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.number_of_solvers_)}},
1098 // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
1099 {::_pbi::TcParser::FastEr0S2,
1100 {456, 5, 2, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.synchronization_type_)}},
1101 // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
1102 {::_pbi::TcParser::FastMtR2,
1103 {466, 63, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.solver_optimizer_sets_)}},
1104 // optional double max_deterministic_time = 27 [default = inf];
1105 {::_pbi::TcParser::FastF64S2,
1106 {473, 29, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_deterministic_time_)}},
1107 // optional double relative_gap_limit = 28 [default = 0.0001];
1108 {::_pbi::TcParser::FastF64S2,
1109 {481, 30, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.relative_gap_limit_)}},
1110 // optional bool use_lp_strong_branching = 29 [default = false];
1111 {::_pbi::TcParser::FastV8S2,
1112 {488, 7, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_lp_strong_branching_)}},
1113 // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
1114 {::_pbi::TcParser::FastV32S2,
1115 {496, 31, 0, PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.decomposer_num_variables_threshold_)}},
1116 {::_pbi::TcParser::MiniParse, {}},
1117 }}, {{
1118 33, 0, 1,
1119 65024, 28,
1120 65535, 65535
1121 }}, {{
1122 // optional double max_time_in_seconds = 1 [default = inf];
1123 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_time_in_seconds_), _Internal::kHasBitsOffset + 12, 0,
1124 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1125 // optional int32 max_num_decisions_in_ls = 2 [default = 4];
1126 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_num_decisions_in_ls_), _Internal::kHasBitsOffset + 13, 0,
1127 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1128 // optional bool compute_estimated_impact = 3 [default = true];
1129 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.compute_estimated_impact_), _Internal::kHasBitsOffset + 17, 0,
1130 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1131 // optional bool prune_search_tree = 4 [default = false];
1132 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.prune_search_tree_), _Internal::kHasBitsOffset + 1, 0,
1133 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1134 // optional bool sort_constraints_by_num_terms = 5 [default = false];
1135 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.sort_constraints_by_num_terms_), _Internal::kHasBitsOffset + 2, 0,
1136 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1137 // optional bool use_random_lns = 6 [default = true];
1138 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_random_lns_), _Internal::kHasBitsOffset + 18, 0,
1139 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1140 // optional int32 random_seed = 7 [default = 8];
1141 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.random_seed_), _Internal::kHasBitsOffset + 14, 0,
1142 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1143 // optional int32 num_relaxed_vars = 8 [default = 10];
1144 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.num_relaxed_vars_), _Internal::kHasBitsOffset + 15, 0,
1145 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1146 // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
1147 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_conflicts_in_random_lns_), _Internal::kHasBitsOffset + 16, 0,
1148 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1149 // optional int32 num_random_lns_tries = 10 [default = 1];
1150 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.num_random_lns_tries_), _Internal::kHasBitsOffset + 21, 0,
1151 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1152 // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1153 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_backtracks_in_ls_), _Internal::kHasBitsOffset + 22, 0,
1154 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
1155 // optional bool use_lp_lns = 12 [default = true];
1156 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_lp_lns_), _Internal::kHasBitsOffset + 19, 0,
1157 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1158 // optional bool log_search_progress = 14 [default = false];
1159 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.log_search_progress_), _Internal::kHasBitsOffset + 3, 0,
1160 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1161 // optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];
1162 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_sat_to_choose_lns_neighbourhood_), _Internal::kHasBitsOffset + 20, 0,
1163 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1164 // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1165 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_conflicts_for_quick_check_), _Internal::kHasBitsOffset + 23, 0,
1166 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1167 // optional bool use_symmetry = 17 [default = false];
1168 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_symmetry_), _Internal::kHasBitsOffset + 4, 0,
1169 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1170 // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1171 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_conflicts_in_random_solution_generation_), _Internal::kHasBitsOffset + 24, 0,
1172 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1173 // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1174 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_explored_assignments_per_try_in_ls_), _Internal::kHasBitsOffset + 25, 0,
1175 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
1176 // optional bool use_transposition_table_in_ls = 22 [default = true];
1177 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_transposition_table_in_ls_), _Internal::kHasBitsOffset + 26, 0,
1178 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1179 // optional bool use_learned_binary_clauses_in_lp = 23 [default = true];
1180 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_learned_binary_clauses_in_lp_), _Internal::kHasBitsOffset + 27, 0,
1181 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1182 // optional int32 number_of_solvers = 24 [default = 1];
1183 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.number_of_solvers_), _Internal::kHasBitsOffset + 28, 0,
1184 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1185 // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
1186 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.synchronization_type_), _Internal::kHasBitsOffset + 5, 1,
1187 (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1188 // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
1189 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.solver_optimizer_sets_), -1, 0,
1190 (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
1191 // optional double max_deterministic_time = 27 [default = inf];
1192 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_deterministic_time_), _Internal::kHasBitsOffset + 29, 0,
1193 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1194 // optional double relative_gap_limit = 28 [default = 0.0001];
1195 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.relative_gap_limit_), _Internal::kHasBitsOffset + 30, 0,
1196 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1197 // optional bool use_lp_strong_branching = 29 [default = false];
1198 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_lp_strong_branching_), _Internal::kHasBitsOffset + 7, 0,
1199 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1200 // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
1201 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.decomposer_num_variables_threshold_), _Internal::kHasBitsOffset + 31, 0,
1202 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1203 // optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];
1204 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.num_bop_solvers_used_by_decomposition_), _Internal::kHasBitsOffset + 32, 0,
1205 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1206 // 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 } "];
1207 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.default_solver_optimizer_sets_), _Internal::kHasBitsOffset + 0, 0,
1208 (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
1209 // optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];
1210 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.guided_sat_conflicts_chunk_), _Internal::kHasBitsOffset + 33, 0,
1211 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1212 // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
1213 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_number_of_consecutive_failing_optimizer_calls_), _Internal::kHasBitsOffset + 6, 0,
1214 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1215 // optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];
1216 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.decomposed_problem_min_time_in_seconds_), _Internal::kHasBitsOffset + 10, 0,
1217 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1218 // optional double lp_max_deterministic_time = 37 [default = 1];
1219 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.lp_max_deterministic_time_), _Internal::kHasBitsOffset + 35, 0,
1220 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1221 // optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];
1222 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_num_broken_constraints_in_ls_), _Internal::kHasBitsOffset + 34, 0,
1223 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1224 // optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];
1225 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.use_potential_one_flip_repairs_in_ls_), _Internal::kHasBitsOffset + 8, 0,
1226 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1227 // optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];
1228 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.exploit_symmetry_in_sat_first_solution_), _Internal::kHasBitsOffset + 9, 0,
1229 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1230 // optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];
1231 {PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.max_lp_solve_for_feasibility_problems_), _Internal::kHasBitsOffset + 11, 0,
1232 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1233 }},
1234 {{
1235 {::_pbi::TcParser::GetTable<::operations_research::bop::BopSolverOptimizerSet>()},
1236 {0, 2},
1237 }},
1238 {{
1239 "\45\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\35\0\0\0\0\0\0\0\0\0\0"
1240 "operations_research.bop.BopParameters"
1241 "default_solver_optimizer_sets"
1242 }},
1243};
1244PROTOBUF_NOINLINE void BopParameters::Clear() {
1245// @@protoc_insertion_point(message_clear_start:operations_research.bop.BopParameters)
1246 ::google::protobuf::internal::TSanWrite(&_impl_);
1247 ::uint32_t cached_has_bits = 0;
1248 // Prevent compiler warnings about cached_has_bits being unused
1249 (void) cached_has_bits;
1250
1251 _impl_.solver_optimizer_sets_.Clear();
1252 cached_has_bits = _impl_._has_bits_[0];
1253 if ((cached_has_bits & 0x00000001u) != 0) {
1254 _impl_.default_solver_optimizer_sets_.ClearToDefault(::operations_research::bop::BopParameters::Impl_::_i_give_permission_to_break_this_code_default_default_solver_optimizer_sets_, GetArena());
1255 }
1256 if ((cached_has_bits & 0x000000feu) != 0) {
1257 ::memset(&_impl_.prune_search_tree_, 0, static_cast<::size_t>(
1258 reinterpret_cast<char*>(&_impl_.use_lp_strong_branching_) -
1259 reinterpret_cast<char*>(&_impl_.prune_search_tree_)) + sizeof(_impl_.use_lp_strong_branching_));
1260 }
1261 if ((cached_has_bits & 0x0000ff00u) != 0) {
1262 ::memset(&_impl_.use_potential_one_flip_repairs_in_ls_, 0, static_cast<::size_t>(
1263 reinterpret_cast<char*>(&_impl_.max_lp_solve_for_feasibility_problems_) -
1264 reinterpret_cast<char*>(&_impl_.use_potential_one_flip_repairs_in_ls_)) + sizeof(_impl_.max_lp_solve_for_feasibility_problems_));
1265 _impl_.max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1266 _impl_.max_num_decisions_in_ls_ = 4;
1267 _impl_.random_seed_ = 8;
1268 _impl_.num_relaxed_vars_ = 10;
1269 }
1270 if ((cached_has_bits & 0x00ff0000u) != 0) {
1271 _impl_.max_number_of_conflicts_in_random_lns_ = 2500;
1272 _impl_.compute_estimated_impact_ = true;
1273 _impl_.use_random_lns_ = true;
1274 _impl_.use_lp_lns_ = true;
1275 _impl_.use_sat_to_choose_lns_neighbourhood_ = true;
1276 _impl_.num_random_lns_tries_ = 1;
1277 _impl_.max_number_of_backtracks_in_ls_ = ::int64_t{100000000};
1278 _impl_.max_number_of_conflicts_for_quick_check_ = 10;
1279 }
1280 if ((cached_has_bits & 0xff000000u) != 0) {
1281 _impl_.max_number_of_conflicts_in_random_solution_generation_ = 500;
1282 _impl_.max_number_of_explored_assignments_per_try_in_ls_ = ::int64_t{10000};
1283 _impl_.use_transposition_table_in_ls_ = true;
1284 _impl_.use_learned_binary_clauses_in_lp_ = true;
1285 _impl_.number_of_solvers_ = 1;
1286 _impl_.max_deterministic_time_ = std::numeric_limits<double>::infinity();
1287 _impl_.relative_gap_limit_ = 0.0001;
1288 _impl_.decomposer_num_variables_threshold_ = 50;
1289 }
1290 cached_has_bits = _impl_._has_bits_[1];
1291 if ((cached_has_bits & 0x0000000fu) != 0) {
1292 _impl_.num_bop_solvers_used_by_decomposition_ = 1;
1293 _impl_.guided_sat_conflicts_chunk_ = 1000;
1294 _impl_.max_num_broken_constraints_in_ls_ = 2147483647;
1295 _impl_.lp_max_deterministic_time_ = 1;
1296 }
1297 _impl_._has_bits_.Clear();
1298 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1299}
1300
1301#if defined(PROTOBUF_CUSTOM_VTABLE)
1302::uint8_t* PROTOBUF_NONNULL BopParameters::_InternalSerialize(
1303 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
1304 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1305 const BopParameters& this_ = static_cast<const BopParameters&>(base);
1306#else // PROTOBUF_CUSTOM_VTABLE
1307::uint8_t* PROTOBUF_NONNULL BopParameters::_InternalSerialize(
1308 ::uint8_t* PROTOBUF_NONNULL target,
1309 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
1310 const BopParameters& this_ = *this;
1311#endif // PROTOBUF_CUSTOM_VTABLE
1312 // @@protoc_insertion_point(serialize_to_array_start:operations_research.bop.BopParameters)
1313 ::uint32_t cached_has_bits = 0;
1314 (void)cached_has_bits;
1315
1316 cached_has_bits = this_._impl_._has_bits_[0];
1317 // optional double max_time_in_seconds = 1 [default = inf];
1318 if ((cached_has_bits & 0x00001000u) != 0) {
1319 target = stream->EnsureSpace(target);
1320 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1321 1, this_._internal_max_time_in_seconds(), target);
1322 }
1323
1324 // optional int32 max_num_decisions_in_ls = 2 [default = 4];
1325 if ((cached_has_bits & 0x00002000u) != 0) {
1326 target =
1327 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
1328 stream, this_._internal_max_num_decisions_in_ls(), target);
1329 }
1330
1331 // optional bool compute_estimated_impact = 3 [default = true];
1332 if ((cached_has_bits & 0x00020000u) != 0) {
1333 target = stream->EnsureSpace(target);
1334 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1335 3, this_._internal_compute_estimated_impact(), target);
1336 }
1337
1338 // optional bool prune_search_tree = 4 [default = false];
1339 if ((cached_has_bits & 0x00000002u) != 0) {
1340 target = stream->EnsureSpace(target);
1341 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1342 4, this_._internal_prune_search_tree(), target);
1343 }
1344
1345 // optional bool sort_constraints_by_num_terms = 5 [default = false];
1346 if ((cached_has_bits & 0x00000004u) != 0) {
1347 target = stream->EnsureSpace(target);
1348 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1349 5, this_._internal_sort_constraints_by_num_terms(), target);
1350 }
1351
1352 // optional bool use_random_lns = 6 [default = true];
1353 if ((cached_has_bits & 0x00040000u) != 0) {
1354 target = stream->EnsureSpace(target);
1355 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1356 6, this_._internal_use_random_lns(), target);
1357 }
1358
1359 // optional int32 random_seed = 7 [default = 8];
1360 if ((cached_has_bits & 0x00004000u) != 0) {
1361 target =
1362 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
1363 stream, this_._internal_random_seed(), target);
1364 }
1365
1366 // optional int32 num_relaxed_vars = 8 [default = 10];
1367 if ((cached_has_bits & 0x00008000u) != 0) {
1368 target =
1369 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<8>(
1370 stream, this_._internal_num_relaxed_vars(), target);
1371 }
1372
1373 // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
1374 if ((cached_has_bits & 0x00010000u) != 0) {
1375 target =
1376 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<9>(
1377 stream, this_._internal_max_number_of_conflicts_in_random_lns(), target);
1378 }
1379
1380 // optional int32 num_random_lns_tries = 10 [default = 1];
1381 if ((cached_has_bits & 0x00200000u) != 0) {
1382 target =
1383 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<10>(
1384 stream, this_._internal_num_random_lns_tries(), target);
1385 }
1386
1387 // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1388 if ((cached_has_bits & 0x00400000u) != 0) {
1389 target =
1390 ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<11>(
1391 stream, this_._internal_max_number_of_backtracks_in_ls(), target);
1392 }
1393
1394 // optional bool use_lp_lns = 12 [default = true];
1395 if ((cached_has_bits & 0x00080000u) != 0) {
1396 target = stream->EnsureSpace(target);
1397 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1398 12, this_._internal_use_lp_lns(), target);
1399 }
1400
1401 // optional bool log_search_progress = 14 [default = false];
1402 if ((cached_has_bits & 0x00000008u) != 0) {
1403 target = stream->EnsureSpace(target);
1404 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1405 14, this_._internal_log_search_progress(), target);
1406 }
1407
1408 // optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];
1409 if ((cached_has_bits & 0x00100000u) != 0) {
1410 target = stream->EnsureSpace(target);
1411 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1412 15, this_._internal_use_sat_to_choose_lns_neighbourhood(), target);
1413 }
1414
1415 // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1416 if ((cached_has_bits & 0x00800000u) != 0) {
1417 target = stream->EnsureSpace(target);
1418 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1419 16, this_._internal_max_number_of_conflicts_for_quick_check(), target);
1420 }
1421
1422 // optional bool use_symmetry = 17 [default = false];
1423 if ((cached_has_bits & 0x00000010u) != 0) {
1424 target = stream->EnsureSpace(target);
1425 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1426 17, this_._internal_use_symmetry(), target);
1427 }
1428
1429 // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1430 if ((cached_has_bits & 0x01000000u) != 0) {
1431 target = stream->EnsureSpace(target);
1432 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1433 20, this_._internal_max_number_of_conflicts_in_random_solution_generation(), target);
1434 }
1435
1436 // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1437 if ((cached_has_bits & 0x02000000u) != 0) {
1438 target = stream->EnsureSpace(target);
1439 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
1440 21, this_._internal_max_number_of_explored_assignments_per_try_in_ls(), target);
1441 }
1442
1443 // optional bool use_transposition_table_in_ls = 22 [default = true];
1444 if ((cached_has_bits & 0x04000000u) != 0) {
1445 target = stream->EnsureSpace(target);
1446 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1447 22, this_._internal_use_transposition_table_in_ls(), target);
1448 }
1449
1450 // optional bool use_learned_binary_clauses_in_lp = 23 [default = true];
1451 if ((cached_has_bits & 0x08000000u) != 0) {
1452 target = stream->EnsureSpace(target);
1453 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1454 23, this_._internal_use_learned_binary_clauses_in_lp(), target);
1455 }
1456
1457 // optional int32 number_of_solvers = 24 [default = 1];
1458 if ((cached_has_bits & 0x10000000u) != 0) {
1459 target = stream->EnsureSpace(target);
1460 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1461 24, this_._internal_number_of_solvers(), target);
1462 }
1463
1464 // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
1465 if ((cached_has_bits & 0x00000020u) != 0) {
1466 target = stream->EnsureSpace(target);
1467 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1468 25, this_._internal_synchronization_type(), target);
1469 }
1470
1471 // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
1472 for (unsigned i = 0, n = static_cast<unsigned>(
1473 this_._internal_solver_optimizer_sets_size());
1474 i < n; i++) {
1475 const auto& repfield = this_._internal_solver_optimizer_sets().Get(i);
1476 target =
1477 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1478 26, repfield, repfield.GetCachedSize(),
1479 target, stream);
1480 }
1481
1482 // optional double max_deterministic_time = 27 [default = inf];
1483 if ((cached_has_bits & 0x20000000u) != 0) {
1484 target = stream->EnsureSpace(target);
1485 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1486 27, this_._internal_max_deterministic_time(), target);
1487 }
1488
1489 // optional double relative_gap_limit = 28 [default = 0.0001];
1490 if ((cached_has_bits & 0x40000000u) != 0) {
1491 target = stream->EnsureSpace(target);
1492 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1493 28, this_._internal_relative_gap_limit(), target);
1494 }
1495
1496 // optional bool use_lp_strong_branching = 29 [default = false];
1497 if ((cached_has_bits & 0x00000080u) != 0) {
1498 target = stream->EnsureSpace(target);
1499 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1500 29, this_._internal_use_lp_strong_branching(), target);
1501 }
1502
1503 // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
1504 if ((cached_has_bits & 0x80000000u) != 0) {
1505 target = stream->EnsureSpace(target);
1506 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1507 30, this_._internal_decomposer_num_variables_threshold(), target);
1508 }
1509
1510 cached_has_bits = this_._impl_._has_bits_[1];
1511 // optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];
1512 if ((cached_has_bits & 0x00000001u) != 0) {
1513 target = stream->EnsureSpace(target);
1514 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1515 31, this_._internal_num_bop_solvers_used_by_decomposition(), target);
1516 }
1517
1518 cached_has_bits = this_._impl_._has_bits_[0];
1519 // 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 } "];
1520 if ((cached_has_bits & 0x00000001u) != 0) {
1521 const ::std::string& _s = this_._internal_default_solver_optimizer_sets();
1522 ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
1523 "operations_research.bop.BopParameters.default_solver_optimizer_sets");
1524 target = stream->WriteStringMaybeAliased(33, _s, target);
1525 }
1526
1527 cached_has_bits = this_._impl_._has_bits_[1];
1528 // optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];
1529 if ((cached_has_bits & 0x00000002u) != 0) {
1530 target = stream->EnsureSpace(target);
1531 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1532 34, this_._internal_guided_sat_conflicts_chunk(), target);
1533 }
1534
1535 cached_has_bits = this_._impl_._has_bits_[0];
1536 // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
1537 if ((cached_has_bits & 0x00000040u) != 0) {
1538 target = stream->EnsureSpace(target);
1539 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1540 35, this_._internal_max_number_of_consecutive_failing_optimizer_calls(), target);
1541 }
1542
1543 // optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];
1544 if ((cached_has_bits & 0x00000400u) != 0) {
1545 target = stream->EnsureSpace(target);
1546 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1547 36, this_._internal_decomposed_problem_min_time_in_seconds(), target);
1548 }
1549
1550 cached_has_bits = this_._impl_._has_bits_[1];
1551 // optional double lp_max_deterministic_time = 37 [default = 1];
1552 if ((cached_has_bits & 0x00000008u) != 0) {
1553 target = stream->EnsureSpace(target);
1554 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1555 37, this_._internal_lp_max_deterministic_time(), target);
1556 }
1557
1558 // optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];
1559 if ((cached_has_bits & 0x00000004u) != 0) {
1560 target = stream->EnsureSpace(target);
1561 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1562 38, this_._internal_max_num_broken_constraints_in_ls(), target);
1563 }
1564
1565 cached_has_bits = this_._impl_._has_bits_[0];
1566 // optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];
1567 if ((cached_has_bits & 0x00000100u) != 0) {
1568 target = stream->EnsureSpace(target);
1569 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1570 39, this_._internal_use_potential_one_flip_repairs_in_ls(), target);
1571 }
1572
1573 // optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];
1574 if ((cached_has_bits & 0x00000200u) != 0) {
1575 target = stream->EnsureSpace(target);
1576 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1577 40, this_._internal_exploit_symmetry_in_sat_first_solution(), target);
1578 }
1579
1580 // optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];
1581 if ((cached_has_bits & 0x00000800u) != 0) {
1582 target = stream->EnsureSpace(target);
1583 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1584 41, this_._internal_max_lp_solve_for_feasibility_problems(), target);
1585 }
1586
1587 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1588 target =
1589 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1590 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1591 }
1592 // @@protoc_insertion_point(serialize_to_array_end:operations_research.bop.BopParameters)
1593 return target;
1594}
1595
1596#if defined(PROTOBUF_CUSTOM_VTABLE)
1597::size_t BopParameters::ByteSizeLong(const MessageLite& base) {
1598 const BopParameters& this_ = static_cast<const BopParameters&>(base);
1599#else // PROTOBUF_CUSTOM_VTABLE
1600::size_t BopParameters::ByteSizeLong() const {
1601 const BopParameters& this_ = *this;
1602#endif // PROTOBUF_CUSTOM_VTABLE
1603 // @@protoc_insertion_point(message_byte_size_start:operations_research.bop.BopParameters)
1604 ::size_t total_size = 0;
1605
1606 ::uint32_t cached_has_bits = 0;
1607 // Prevent compiler warnings about cached_has_bits being unused
1608 (void)cached_has_bits;
1609
1610 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1611 {
1612 // repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;
1613 {
1614 total_size += 2UL * this_._internal_solver_optimizer_sets_size();
1615 for (const auto& msg : this_._internal_solver_optimizer_sets()) {
1616 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
1617 }
1618 }
1619 }
1620 cached_has_bits = this_._impl_._has_bits_[0];
1621 total_size += ::absl::popcount(0x60000400u & cached_has_bits) * 10;
1622 total_size += static_cast<bool>(0x00001000u & cached_has_bits) * 9;
1623 total_size += ::absl::popcount(0x0c000390u & cached_has_bits) * 3;
1624 total_size += ::absl::popcount(0x001e000eu & cached_has_bits) * 2;
1625 if ((cached_has_bits & 0x00000061u) != 0) {
1626 // 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 } "];
1627 if ((cached_has_bits & 0x00000001u) != 0) {
1628 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
1629 this_._internal_default_solver_optimizer_sets());
1630 }
1631 // optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
1632 if ((cached_has_bits & 0x00000020u) != 0) {
1633 total_size += 2 +
1634 ::_pbi::WireFormatLite::EnumSize(this_._internal_synchronization_type());
1635 }
1636 // optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;
1637 if ((cached_has_bits & 0x00000040u) != 0) {
1638 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1639 this_._internal_max_number_of_consecutive_failing_optimizer_calls());
1640 }
1641 }
1642 if ((cached_has_bits & 0x0000e800u) != 0) {
1643 // optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];
1644 if ((cached_has_bits & 0x00000800u) != 0) {
1645 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1646 this_._internal_max_lp_solve_for_feasibility_problems());
1647 }
1648 // optional int32 max_num_decisions_in_ls = 2 [default = 4];
1649 if ((cached_has_bits & 0x00002000u) != 0) {
1650 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1651 this_._internal_max_num_decisions_in_ls());
1652 }
1653 // optional int32 random_seed = 7 [default = 8];
1654 if ((cached_has_bits & 0x00004000u) != 0) {
1655 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1656 this_._internal_random_seed());
1657 }
1658 // optional int32 num_relaxed_vars = 8 [default = 10];
1659 if ((cached_has_bits & 0x00008000u) != 0) {
1660 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1661 this_._internal_num_relaxed_vars());
1662 }
1663 }
1664 if ((cached_has_bits & 0x00e10000u) != 0) {
1665 // optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];
1666 if ((cached_has_bits & 0x00010000u) != 0) {
1667 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1668 this_._internal_max_number_of_conflicts_in_random_lns());
1669 }
1670 // optional int32 num_random_lns_tries = 10 [default = 1];
1671 if ((cached_has_bits & 0x00200000u) != 0) {
1672 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1673 this_._internal_num_random_lns_tries());
1674 }
1675 // optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];
1676 if ((cached_has_bits & 0x00400000u) != 0) {
1677 total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
1678 this_._internal_max_number_of_backtracks_in_ls());
1679 }
1680 // optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];
1681 if ((cached_has_bits & 0x00800000u) != 0) {
1682 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1683 this_._internal_max_number_of_conflicts_for_quick_check());
1684 }
1685 }
1686 if ((cached_has_bits & 0x93000000u) != 0) {
1687 // optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];
1688 if ((cached_has_bits & 0x01000000u) != 0) {
1689 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1690 this_._internal_max_number_of_conflicts_in_random_solution_generation());
1691 }
1692 // optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];
1693 if ((cached_has_bits & 0x02000000u) != 0) {
1694 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
1695 this_._internal_max_number_of_explored_assignments_per_try_in_ls());
1696 }
1697 // optional int32 number_of_solvers = 24 [default = 1];
1698 if ((cached_has_bits & 0x10000000u) != 0) {
1699 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1700 this_._internal_number_of_solvers());
1701 }
1702 // optional int32 decomposer_num_variables_threshold = 30 [default = 50];
1703 if ((cached_has_bits & 0x80000000u) != 0) {
1704 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1705 this_._internal_decomposer_num_variables_threshold());
1706 }
1707 }
1708 cached_has_bits = this_._impl_._has_bits_[1];
1709 total_size += static_cast<bool>(0x00000008u & cached_has_bits) * 10;
1710 if ((cached_has_bits & 0x00000007u) != 0) {
1711 // optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];
1712 if ((cached_has_bits & 0x00000001u) != 0) {
1713 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1714 this_._internal_num_bop_solvers_used_by_decomposition());
1715 }
1716 // optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];
1717 if ((cached_has_bits & 0x00000002u) != 0) {
1718 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1719 this_._internal_guided_sat_conflicts_chunk());
1720 }
1721 // optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];
1722 if ((cached_has_bits & 0x00000004u) != 0) {
1723 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1724 this_._internal_max_num_broken_constraints_in_ls());
1725 }
1726 }
1727 return this_.MaybeComputeUnknownFieldsSize(total_size,
1728 &this_._impl_._cached_size_);
1729}
1730
1731void BopParameters::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
1732 auto* const _this = static_cast<BopParameters*>(&to_msg);
1733 auto& from = static_cast<const BopParameters&>(from_msg);
1734 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.bop.BopParameters)
1735 ABSL_DCHECK_NE(&from, _this);
1736 ::uint32_t cached_has_bits = 0;
1737 (void) cached_has_bits;
1738
1739 _this->_internal_mutable_solver_optimizer_sets()->MergeFrom(
1740 from._internal_solver_optimizer_sets());
1741 cached_has_bits = from._impl_._has_bits_[0];
1742 if ((cached_has_bits & 0x000000ffu) != 0) {
1743 if ((cached_has_bits & 0x00000001u) != 0) {
1744 _this->_internal_set_default_solver_optimizer_sets(from._internal_default_solver_optimizer_sets());
1745 }
1746 if ((cached_has_bits & 0x00000002u) != 0) {
1747 _this->_impl_.prune_search_tree_ = from._impl_.prune_search_tree_;
1748 }
1749 if ((cached_has_bits & 0x00000004u) != 0) {
1750 _this->_impl_.sort_constraints_by_num_terms_ = from._impl_.sort_constraints_by_num_terms_;
1751 }
1752 if ((cached_has_bits & 0x00000008u) != 0) {
1753 _this->_impl_.log_search_progress_ = from._impl_.log_search_progress_;
1754 }
1755 if ((cached_has_bits & 0x00000010u) != 0) {
1756 _this->_impl_.use_symmetry_ = from._impl_.use_symmetry_;
1757 }
1758 if ((cached_has_bits & 0x00000020u) != 0) {
1759 _this->_impl_.synchronization_type_ = from._impl_.synchronization_type_;
1760 }
1761 if ((cached_has_bits & 0x00000040u) != 0) {
1762 _this->_impl_.max_number_of_consecutive_failing_optimizer_calls_ = from._impl_.max_number_of_consecutive_failing_optimizer_calls_;
1763 }
1764 if ((cached_has_bits & 0x00000080u) != 0) {
1765 _this->_impl_.use_lp_strong_branching_ = from._impl_.use_lp_strong_branching_;
1766 }
1767 }
1768 if ((cached_has_bits & 0x0000ff00u) != 0) {
1769 if ((cached_has_bits & 0x00000100u) != 0) {
1770 _this->_impl_.use_potential_one_flip_repairs_in_ls_ = from._impl_.use_potential_one_flip_repairs_in_ls_;
1771 }
1772 if ((cached_has_bits & 0x00000200u) != 0) {
1773 _this->_impl_.exploit_symmetry_in_sat_first_solution_ = from._impl_.exploit_symmetry_in_sat_first_solution_;
1774 }
1775 if ((cached_has_bits & 0x00000400u) != 0) {
1776 _this->_impl_.decomposed_problem_min_time_in_seconds_ = from._impl_.decomposed_problem_min_time_in_seconds_;
1777 }
1778 if ((cached_has_bits & 0x00000800u) != 0) {
1779 _this->_impl_.max_lp_solve_for_feasibility_problems_ = from._impl_.max_lp_solve_for_feasibility_problems_;
1780 }
1781 if ((cached_has_bits & 0x00001000u) != 0) {
1782 _this->_impl_.max_time_in_seconds_ = from._impl_.max_time_in_seconds_;
1783 }
1784 if ((cached_has_bits & 0x00002000u) != 0) {
1785 _this->_impl_.max_num_decisions_in_ls_ = from._impl_.max_num_decisions_in_ls_;
1786 }
1787 if ((cached_has_bits & 0x00004000u) != 0) {
1788 _this->_impl_.random_seed_ = from._impl_.random_seed_;
1789 }
1790 if ((cached_has_bits & 0x00008000u) != 0) {
1791 _this->_impl_.num_relaxed_vars_ = from._impl_.num_relaxed_vars_;
1792 }
1793 }
1794 if ((cached_has_bits & 0x00ff0000u) != 0) {
1795 if ((cached_has_bits & 0x00010000u) != 0) {
1796 _this->_impl_.max_number_of_conflicts_in_random_lns_ = from._impl_.max_number_of_conflicts_in_random_lns_;
1797 }
1798 if ((cached_has_bits & 0x00020000u) != 0) {
1799 _this->_impl_.compute_estimated_impact_ = from._impl_.compute_estimated_impact_;
1800 }
1801 if ((cached_has_bits & 0x00040000u) != 0) {
1802 _this->_impl_.use_random_lns_ = from._impl_.use_random_lns_;
1803 }
1804 if ((cached_has_bits & 0x00080000u) != 0) {
1805 _this->_impl_.use_lp_lns_ = from._impl_.use_lp_lns_;
1806 }
1807 if ((cached_has_bits & 0x00100000u) != 0) {
1808 _this->_impl_.use_sat_to_choose_lns_neighbourhood_ = from._impl_.use_sat_to_choose_lns_neighbourhood_;
1809 }
1810 if ((cached_has_bits & 0x00200000u) != 0) {
1811 _this->_impl_.num_random_lns_tries_ = from._impl_.num_random_lns_tries_;
1812 }
1813 if ((cached_has_bits & 0x00400000u) != 0) {
1814 _this->_impl_.max_number_of_backtracks_in_ls_ = from._impl_.max_number_of_backtracks_in_ls_;
1815 }
1816 if ((cached_has_bits & 0x00800000u) != 0) {
1817 _this->_impl_.max_number_of_conflicts_for_quick_check_ = from._impl_.max_number_of_conflicts_for_quick_check_;
1818 }
1819 }
1820 if ((cached_has_bits & 0xff000000u) != 0) {
1821 if ((cached_has_bits & 0x01000000u) != 0) {
1822 _this->_impl_.max_number_of_conflicts_in_random_solution_generation_ = from._impl_.max_number_of_conflicts_in_random_solution_generation_;
1823 }
1824 if ((cached_has_bits & 0x02000000u) != 0) {
1825 _this->_impl_.max_number_of_explored_assignments_per_try_in_ls_ = from._impl_.max_number_of_explored_assignments_per_try_in_ls_;
1826 }
1827 if ((cached_has_bits & 0x04000000u) != 0) {
1828 _this->_impl_.use_transposition_table_in_ls_ = from._impl_.use_transposition_table_in_ls_;
1829 }
1830 if ((cached_has_bits & 0x08000000u) != 0) {
1831 _this->_impl_.use_learned_binary_clauses_in_lp_ = from._impl_.use_learned_binary_clauses_in_lp_;
1832 }
1833 if ((cached_has_bits & 0x10000000u) != 0) {
1834 _this->_impl_.number_of_solvers_ = from._impl_.number_of_solvers_;
1835 }
1836 if ((cached_has_bits & 0x20000000u) != 0) {
1837 _this->_impl_.max_deterministic_time_ = from._impl_.max_deterministic_time_;
1838 }
1839 if ((cached_has_bits & 0x40000000u) != 0) {
1840 _this->_impl_.relative_gap_limit_ = from._impl_.relative_gap_limit_;
1841 }
1842 if ((cached_has_bits & 0x80000000u) != 0) {
1843 _this->_impl_.decomposer_num_variables_threshold_ = from._impl_.decomposer_num_variables_threshold_;
1844 }
1845 }
1846 cached_has_bits = from._impl_._has_bits_[1];
1847 if ((cached_has_bits & 0x0000000fu) != 0) {
1848 if ((cached_has_bits & 0x00000001u) != 0) {
1849 _this->_impl_.num_bop_solvers_used_by_decomposition_ = from._impl_.num_bop_solvers_used_by_decomposition_;
1850 }
1851 if ((cached_has_bits & 0x00000002u) != 0) {
1852 _this->_impl_.guided_sat_conflicts_chunk_ = from._impl_.guided_sat_conflicts_chunk_;
1853 }
1854 if ((cached_has_bits & 0x00000004u) != 0) {
1855 _this->_impl_.max_num_broken_constraints_in_ls_ = from._impl_.max_num_broken_constraints_in_ls_;
1856 }
1857 if ((cached_has_bits & 0x00000008u) != 0) {
1858 _this->_impl_.lp_max_deterministic_time_ = from._impl_.lp_max_deterministic_time_;
1859 }
1860 }
1861 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
1862 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
1863}
1864
1865void BopParameters::CopyFrom(const BopParameters& from) {
1866// @@protoc_insertion_point(class_specific_copy_from_start:operations_research.bop.BopParameters)
1867 if (&from == this) return;
1869 MergeFrom(from);
1870}
1871
1872
1873void BopParameters::InternalSwap(BopParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
1874 using ::std::swap;
1875 auto* arena = GetArena();
1876 ABSL_DCHECK_EQ(arena, other->GetArena());
1877 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1878 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1879 swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
1880 _impl_.solver_optimizer_sets_.InternalSwap(&other->_impl_.solver_optimizer_sets_);
1881 ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.default_solver_optimizer_sets_, &other->_impl_.default_solver_optimizer_sets_, arena);
1882 ::google::protobuf::internal::memswap<
1883 PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.lp_max_deterministic_time_)
1884 + sizeof(BopParameters::_impl_.lp_max_deterministic_time_)
1885 - PROTOBUF_FIELD_OFFSET(BopParameters, _impl_.prune_search_tree_)>(
1886 reinterpret_cast<char*>(&_impl_.prune_search_tree_),
1887 reinterpret_cast<char*>(&other->_impl_.prune_search_tree_));
1888}
1889
1890::google::protobuf::Metadata BopParameters::GetMetadata() const {
1891 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1892}
1893// @@protoc_insertion_point(namespace_scope)
1894} // namespace bop
1895} // namespace operations_research
1896namespace google {
1897namespace protobuf {
1898} // namespace protobuf
1899} // namespace google
1900// @@protoc_insertion_point(global_scope)
1901PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
1902 _static_init2_ [[maybe_unused]] =
1904 ::std::false_type{});
1905#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_
@protoc_insertion_point(global_scope)
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
friend class ::google::protobuf::MessageLite
static void *PROTOBUF_NONNULL PlacementNew_(const void *PROTOBUF_NONNULL, void *PROTOBUF_NONNULL mem, ::google::protobuf::Arena *PROTOBUF_NULLABLE arena)
const ::google::protobuf::internal::ClassData *PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL
void MergeFrom(const BopOptimizerMethod &from)
void CopyFrom(const BopOptimizerMethod &from)
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
::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)
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
::google::protobuf::Metadata GetMetadata() const
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
static void *PROTOBUF_NONNULL PlacementNew_(const void *PROTOBUF_NONNULL, void *PROTOBUF_NONNULL mem, ::google::protobuf::Arena *PROTOBUF_NULLABLE arena)
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
void CopyFrom(const BopParameters &from)
static constexpr auto InternalGenerateClassData_()
const ::google::protobuf::internal::ClassData *PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend void swap(BopParameters &a, BopParameters &b)
::google::protobuf::Metadata GetMetadata() const
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
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
static void *PROTOBUF_NONNULL PlacementNew_(const void *PROTOBUF_NONNULL, void *PROTOBUF_NONNULL mem, ::google::protobuf::Arena *PROTOBUF_NULLABLE arena)
void CopyFrom(const BopSolverOptimizerSet &from)
::google::protobuf::Metadata GetMetadata() const
const ::google::protobuf::internal::ClassData *PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL
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()
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_
In SWIG mode, we don't want anything besides these top-level includes.
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas