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