OR-Tools  8.0
routing_parameters.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/constraint_solver/routing_parameters.proto
3 
5 
6 #include <algorithm>
7 
8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fduration_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Duration_google_2fprotobuf_2fduration_2eproto;
18 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ConstraintSolverParameters_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto;
19 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RoutingSearchParameters_LocalSearchNeighborhoodOperators_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto;
20 namespace operations_research {
22  public:
23  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingSearchParameters_LocalSearchNeighborhoodOperators> _instance;
26  public:
27  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingSearchParameters> _instance;
30  public:
31  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutingModelParameters> _instance;
33 } // namespace operations_research
35  GOOGLE_PROTOBUF_VERIFY_VERSION;
36 
37  {
40  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
41  }
42  ::operations_research::RoutingModelParameters::InitAsDefaultInstance();
43 }
44 
46  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RoutingModelParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto}, {
48 
50  GOOGLE_PROTOBUF_VERIFY_VERSION;
51 
52  {
55  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
56  }
57  ::operations_research::RoutingSearchParameters::InitAsDefaultInstance();
58 }
59 
61  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_RoutingSearchParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto}, {
64 
66  GOOGLE_PROTOBUF_VERIFY_VERSION;
67 
68  {
71  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
72  }
73  ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::InitAsDefaultInstance();
74 }
75 
77  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_RoutingSearchParameters_LocalSearchNeighborhoodOperators_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto}, {}};
78 
81 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto = nullptr;
82 
84  ~0u, // no _has_bits_
85  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, _internal_metadata_),
86  ~0u, // no _extensions_
87  ~0u, // no _oneof_case_
88  ~0u, // no _weak_field_map_
90  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_pair_),
91  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_light_relocate_pair_),
92  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_neighbors_),
93  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_subtrip_),
95  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_exchange_pair_),
96  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_exchange_subtrip_),
98  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_cross_exchange_),
99  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_expensive_chain_),
102  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_lin_kernighan_),
105  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_and_make_active_),
106  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_make_inactive_),
107  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_make_chain_inactive_),
109  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_extended_swap_active_),
110  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_node_pair_swap_active_),
112  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_full_path_lns_),
114  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_inactive_lns_),
115  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_global_cheapest_insertion_path_lns_),
116  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_local_cheapest_insertion_path_lns_),
117  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_global_cheapest_insertion_expensive_chain_lns_),
118  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_local_cheapest_insertion_expensive_chain_lns_),
119  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_global_cheapest_insertion_close_nodes_lns_),
120  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_local_cheapest_insertion_close_nodes_lns_),
121  ~0u, // no _has_bits_
122  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, _internal_metadata_),
123  ~0u, // no _extensions_
124  ~0u, // no _oneof_case_
125  ~0u, // no _weak_field_map_
126  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, first_solution_strategy_),
127  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_unfiltered_first_solution_strategy_),
128  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_neighbors_ratio_),
129  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_max_memory_usage_bytes_),
130  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_add_reverse_arcs_),
131  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_arc_coefficient_),
132  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, savings_parallel_routes_),
133  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_farthest_seeds_ratio_),
134  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_first_solution_neighbors_ratio_),
135  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, cheapest_insertion_ls_operator_neighbors_ratio_),
136  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, christofides_use_minimum_matching_),
137  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, local_search_operators_),
138  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, relocate_expensive_chain_num_arcs_to_consider_),
139  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, heuristic_expensive_chain_lns_num_arcs_to_consider_),
140  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, heuristic_close_nodes_lns_num_nodes_),
141  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, local_search_metaheuristic_),
142  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, guided_local_search_lambda_coefficient_),
143  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_depth_first_search_),
144  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_cp_),
145  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_cp_sat_),
146  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, continuous_scheduling_solver_),
147  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, mixed_integer_scheduling_solver_),
148  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, optimization_step_),
149  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, number_of_solutions_to_collect_),
150  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, solution_limit_),
151  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, time_limit_),
152  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, lns_time_limit_),
153  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, use_full_propagation_),
154  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, log_search_),
155  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, log_cost_scaling_factor_),
156  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, log_cost_offset_),
157  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingSearchParameters, log_tag_),
158  ~0u, // no _has_bits_
159  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingModelParameters, _internal_metadata_),
160  ~0u, // no _extensions_
161  ~0u, // no _oneof_case_
162  ~0u, // no _weak_field_map_
163  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingModelParameters, solver_parameters_),
164  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingModelParameters, reduce_vehicle_cost_model_),
165  PROTOBUF_FIELD_OFFSET(::operations_research::RoutingModelParameters, max_callback_cache_size_),
166 };
167 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
168  { 0, -1, sizeof(::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators)},
169  { 37, -1, sizeof(::operations_research::RoutingSearchParameters)},
170  { 74, -1, sizeof(::operations_research::RoutingModelParameters)},
171 };
172 
173 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
174  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_),
175  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_RoutingSearchParameters_default_instance_),
176  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_RoutingModelParameters_default_instance_),
177 };
178 
179 const char descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
180  "\n2ortools/constraint_solver/routing_para"
181  "meters.proto\022\023operations_research\032\036googl"
182  "e/protobuf/duration.proto\032-ortools/const"
183  "raint_solver/routing_enums.proto\0321ortool"
184  "s/constraint_solver/solver_parameters.pr"
185  "oto\032#ortools/util/optional_boolean.proto"
186  "\"\350\036\n\027RoutingSearchParameters\022Q\n\027first_so"
187  "lution_strategy\030\001 \001(\01620.operations_resea"
188  "rch.FirstSolutionStrategy.Value\022.\n&use_u"
189  "nfiltered_first_solution_strategy\030\002 \001(\010\022"
190  "\037\n\027savings_neighbors_ratio\030\016 \001(\001\022&\n\036savi"
191  "ngs_max_memory_usage_bytes\030\027 \001(\001\022 \n\030savi"
192  "ngs_add_reverse_arcs\030\017 \001(\010\022\037\n\027savings_ar"
193  "c_coefficient\030\022 \001(\001\022\037\n\027savings_parallel_"
194  "routes\030\023 \001(\010\022/\n\'cheapest_insertion_farth"
195  "est_seeds_ratio\030\020 \001(\001\0229\n1cheapest_insert"
196  "ion_first_solution_neighbors_ratio\030\025 \001(\001"
197  "\0226\n.cheapest_insertion_ls_operator_neigh"
198  "bors_ratio\030\037 \001(\001\022)\n!christofides_use_min"
199  "imum_matching\030\036 \001(\010\022m\n\026local_search_oper"
200  "ators\030\003 \001(\0132M.operations_research.Routin"
201  "gSearchParameters.LocalSearchNeighborhoo"
202  "dOperators\0225\n-relocate_expensive_chain_n"
203  "um_arcs_to_consider\030\024 \001(\005\022:\n2heuristic_e"
204  "xpensive_chain_lns_num_arcs_to_consider\030"
205  " \001(\005\022+\n#heuristic_close_nodes_lns_num_n"
206  "odes\030# \001(\005\022W\n\032local_search_metaheuristic"
207  "\030\004 \001(\01623.operations_research.LocalSearch"
208  "Metaheuristic.Value\022.\n&guided_local_sear"
209  "ch_lambda_coefficient\030\005 \001(\001\022\036\n\026use_depth"
210  "_first_search\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.op"
211  "erations_research.OptionalBoolean\0228\n\nuse"
212  "_cp_sat\030\033 \001(\0162$.operations_research.Opti"
213  "onalBoolean\022c\n\034continuous_scheduling_sol"
214  "ver\030! \001(\0162=.operations_research.RoutingS"
215  "earchParameters.SchedulingSolver\022f\n\037mixe"
216  "d_integer_scheduling_solver\030\" \001(\0162=.oper"
217  "ations_research.RoutingSearchParameters."
218  "SchedulingSolver\022\031\n\021optimization_step\030\007 "
219  "\001(\001\022&\n\036number_of_solutions_to_collect\030\021 "
220  "\001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n\ntime_limi"
221  "t\030\t \001(\0132\031.google.protobuf.Duration\0221\n\016ln"
222  "s_time_limit\030\n \001(\0132\031.google.protobuf.Dur"
223  "ation\022\034\n\024use_full_propagation\030\013 \001(\010\022\022\n\nl"
224  "og_search\030\r \001(\010\022\037\n\027log_cost_scaling_fact"
225  "or\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022\017\n\007log"
226  "_tag\030$ \001(\t\032\351\021\n LocalSearchNeighborhoodOp"
227  "erators\022:\n\014use_relocate\030\001 \001(\0162$.operatio"
228  "ns_research.OptionalBoolean\022\?\n\021use_reloc"
229  "ate_pair\030\002 \001(\0162$.operations_research.Opt"
230  "ionalBoolean\022E\n\027use_light_relocate_pair\030"
231  "\030 \001(\0162$.operations_research.OptionalBool"
232  "ean\022D\n\026use_relocate_neighbors\030\003 \001(\0162$.op"
233  "erations_research.OptionalBoolean\022B\n\024use"
234  "_relocate_subtrip\030\031 \001(\0162$.operations_res"
235  "earch.OptionalBoolean\022:\n\014use_exchange\030\004 "
236  "\001(\0162$.operations_research.OptionalBoolea"
237  "n\022\?\n\021use_exchange_pair\030\026 \001(\0162$.operation"
238  "s_research.OptionalBoolean\022B\n\024use_exchan"
239  "ge_subtrip\030\032 \001(\0162$.operations_research.O"
240  "ptionalBoolean\0227\n\tuse_cross\030\005 \001(\0162$.oper"
241  "ations_research.OptionalBoolean\022@\n\022use_c"
242  "ross_exchange\030\006 \001(\0162$.operations_researc"
243  "h.OptionalBoolean\022J\n\034use_relocate_expens"
244  "ive_chain\030\027 \001(\0162$.operations_research.Op"
245  "tionalBoolean\0229\n\013use_two_opt\030\007 \001(\0162$.ope"
246  "rations_research.OptionalBoolean\0228\n\nuse_"
247  "or_opt\030\010 \001(\0162$.operations_research.Optio"
248  "nalBoolean\022\?\n\021use_lin_kernighan\030\t \001(\0162$."
249  "operations_research.OptionalBoolean\0229\n\013u"
250  "se_tsp_opt\030\n \001(\0162$.operations_research.O"
251  "ptionalBoolean\022=\n\017use_make_active\030\013 \001(\0162"
252  "$.operations_research.OptionalBoolean\022J\n"
253  "\034use_relocate_and_make_active\030\025 \001(\0162$.op"
254  "erations_research.OptionalBoolean\022\?\n\021use"
255  "_make_inactive\030\014 \001(\0162$.operations_resear"
256  "ch.OptionalBoolean\022E\n\027use_make_chain_ina"
257  "ctive\030\r \001(\0162$.operations_research.Option"
258  "alBoolean\022=\n\017use_swap_active\030\016 \001(\0162$.ope"
259  "rations_research.OptionalBoolean\022F\n\030use_"
260  "extended_swap_active\030\017 \001(\0162$.operations_"
261  "research.OptionalBoolean\022G\n\031use_node_pai"
262  "r_swap_active\030\024 \001(\0162$.operations_researc"
263  "h.OptionalBoolean\022:\n\014use_path_lns\030\020 \001(\0162"
264  "$.operations_research.OptionalBoolean\022\?\n"
265  "\021use_full_path_lns\030\021 \001(\0162$.operations_re"
266  "search.OptionalBoolean\0229\n\013use_tsp_lns\030\022 "
267  "\001(\0162$.operations_research.OptionalBoolea"
268  "n\022>\n\020use_inactive_lns\030\023 \001(\0162$.operations"
269  "_research.OptionalBoolean\022T\n&use_global_"
270  "cheapest_insertion_path_lns\030\033 \001(\0162$.oper"
271  "ations_research.OptionalBoolean\022S\n%use_l"
272  "ocal_cheapest_insertion_path_lns\030\034 \001(\0162$"
273  ".operations_research.OptionalBoolean\022_\n1"
274  "use_global_cheapest_insertion_expensive_"
275  "chain_lns\030\035 \001(\0162$.operations_research.Op"
276  "tionalBoolean\022^\n0use_local_cheapest_inse"
277  "rtion_expensive_chain_lns\030\036 \001(\0162$.operat"
278  "ions_research.OptionalBoolean\022[\n-use_glo"
279  "bal_cheapest_insertion_close_nodes_lns\030\037"
280  " \001(\0162$.operations_research.OptionalBoole"
281  "an\022Z\n,use_local_cheapest_insertion_close"
282  "_nodes_lns\030 \001(\0162$.operations_research.O"
283  "ptionalBoolean\"3\n\020SchedulingSolver\022\t\n\005UN"
284  "SET\020\000\022\010\n\004GLOP\020\001\022\n\n\006CP_SAT\020\002\"\250\001\n\026RoutingM"
285  "odelParameters\022J\n\021solver_parameters\030\001 \001("
286  "\0132/.operations_research.ConstraintSolver"
287  "Parameters\022!\n\031reduce_vehicle_cost_model\030"
288  "\002 \001(\010\022\037\n\027max_callback_cache_size\030\003 \001(\005BI"
289  "\n#com.google.ortools.constraintsolverP\001\252"
290  "\002\037Google.OrTools.ConstraintSolverb\006proto"
291  "3"
292  ;
293 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[4] = {
294  &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
298 };
299 static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_sccs[3] = {
303 };
305 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto = {
306  false, false, descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto, "ortools/constraint_solver/routing_parameters.proto", 4441,
310 };
311 
312 // Force running AddDescriptors() at dynamic initialization time.
314 namespace operations_research {
315 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RoutingSearchParameters_SchedulingSolver_descriptor() {
316  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto);
318 }
320  switch (value) {
321  case 0:
322  case 1:
323  case 2:
324  return true;
325  default:
326  return false;
327  }
328 }
329 
330 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
331 constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::UNSET;
332 constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::GLOP;
333 constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::CP_SAT;
334 constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::SchedulingSolver_MIN;
335 constexpr RoutingSearchParameters_SchedulingSolver RoutingSearchParameters::SchedulingSolver_MAX;
336 constexpr int RoutingSearchParameters::SchedulingSolver_ARRAYSIZE;
337 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
338 
339 // ===================================================================
340 
341 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::InitAsDefaultInstance() {
342 }
344  public:
345 };
346 
347 RoutingSearchParameters_LocalSearchNeighborhoodOperators::RoutingSearchParameters_LocalSearchNeighborhoodOperators(::PROTOBUF_NAMESPACE_ID::Arena* arena)
348  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
349  SharedCtor();
350  RegisterArenaDtor(arena);
351  // @@protoc_insertion_point(arena_constructor:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
352 }
353 RoutingSearchParameters_LocalSearchNeighborhoodOperators::RoutingSearchParameters_LocalSearchNeighborhoodOperators(const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from)
354  : ::PROTOBUF_NAMESPACE_ID::Message() {
355  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
356  ::memcpy(&use_relocate_, &from.use_relocate_,
357  static_cast<size_t>(reinterpret_cast<char*>(&use_local_cheapest_insertion_close_nodes_lns_) -
358  reinterpret_cast<char*>(&use_relocate_)) + sizeof(use_local_cheapest_insertion_close_nodes_lns_));
359  // @@protoc_insertion_point(copy_constructor:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
360 }
361 
362 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor() {
363  ::memset(&use_relocate_, 0, static_cast<size_t>(
364  reinterpret_cast<char*>(&use_local_cheapest_insertion_close_nodes_lns_) -
365  reinterpret_cast<char*>(&use_relocate_)) + sizeof(use_local_cheapest_insertion_close_nodes_lns_));
366 }
367 
368 RoutingSearchParameters_LocalSearchNeighborhoodOperators::~RoutingSearchParameters_LocalSearchNeighborhoodOperators() {
369  // @@protoc_insertion_point(destructor:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
370  SharedDtor();
371  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
372 }
373 
374 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor() {
375  GOOGLE_DCHECK(GetArena() == nullptr);
376 }
377 
378 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::ArenaDtor(void* object) {
379  RoutingSearchParameters_LocalSearchNeighborhoodOperators* _this = reinterpret_cast< RoutingSearchParameters_LocalSearchNeighborhoodOperators* >(object);
380  (void)_this;
381 }
382 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
383 }
384 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SetCachedSize(int size) const {
385  _cached_size_.Set(size);
386 }
387 const RoutingSearchParameters_LocalSearchNeighborhoodOperators& RoutingSearchParameters_LocalSearchNeighborhoodOperators::default_instance() {
389  return *internal_default_instance();
390 }
391 
392 
393 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::Clear() {
394 // @@protoc_insertion_point(message_clear_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
395  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
396  // Prevent compiler warnings about cached_has_bits being unused
397  (void) cached_has_bits;
398 
399  ::memset(&use_relocate_, 0, static_cast<size_t>(
400  reinterpret_cast<char*>(&use_local_cheapest_insertion_close_nodes_lns_) -
401  reinterpret_cast<char*>(&use_relocate_)) + sizeof(use_local_cheapest_insertion_close_nodes_lns_));
402  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
403 }
404 
405 const char* RoutingSearchParameters_LocalSearchNeighborhoodOperators::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
406 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
407  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
408  while (!ctx->Done(&ptr)) {
410  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
411  CHK_(ptr);
412  switch (tag >> 3) {
413  // .operations_research.OptionalBoolean use_relocate = 1;
414  case 1:
415  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
416  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
417  CHK_(ptr);
418  _internal_set_use_relocate(static_cast<::operations_research::OptionalBoolean>(val));
419  } else goto handle_unusual;
420  continue;
421  // .operations_research.OptionalBoolean use_relocate_pair = 2;
422  case 2:
423  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
424  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
425  CHK_(ptr);
426  _internal_set_use_relocate_pair(static_cast<::operations_research::OptionalBoolean>(val));
427  } else goto handle_unusual;
428  continue;
429  // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
430  case 3:
431  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
432  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
433  CHK_(ptr);
434  _internal_set_use_relocate_neighbors(static_cast<::operations_research::OptionalBoolean>(val));
435  } else goto handle_unusual;
436  continue;
437  // .operations_research.OptionalBoolean use_exchange = 4;
438  case 4:
439  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
440  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
441  CHK_(ptr);
442  _internal_set_use_exchange(static_cast<::operations_research::OptionalBoolean>(val));
443  } else goto handle_unusual;
444  continue;
445  // .operations_research.OptionalBoolean use_cross = 5;
446  case 5:
447  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
448  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
449  CHK_(ptr);
450  _internal_set_use_cross(static_cast<::operations_research::OptionalBoolean>(val));
451  } else goto handle_unusual;
452  continue;
453  // .operations_research.OptionalBoolean use_cross_exchange = 6;
454  case 6:
455  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
456  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
457  CHK_(ptr);
458  _internal_set_use_cross_exchange(static_cast<::operations_research::OptionalBoolean>(val));
459  } else goto handle_unusual;
460  continue;
461  // .operations_research.OptionalBoolean use_two_opt = 7;
462  case 7:
463  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
464  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
465  CHK_(ptr);
466  _internal_set_use_two_opt(static_cast<::operations_research::OptionalBoolean>(val));
467  } else goto handle_unusual;
468  continue;
469  // .operations_research.OptionalBoolean use_or_opt = 8;
470  case 8:
471  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
472  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
473  CHK_(ptr);
474  _internal_set_use_or_opt(static_cast<::operations_research::OptionalBoolean>(val));
475  } else goto handle_unusual;
476  continue;
477  // .operations_research.OptionalBoolean use_lin_kernighan = 9;
478  case 9:
479  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
480  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
481  CHK_(ptr);
482  _internal_set_use_lin_kernighan(static_cast<::operations_research::OptionalBoolean>(val));
483  } else goto handle_unusual;
484  continue;
485  // .operations_research.OptionalBoolean use_tsp_opt = 10;
486  case 10:
487  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
488  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
489  CHK_(ptr);
490  _internal_set_use_tsp_opt(static_cast<::operations_research::OptionalBoolean>(val));
491  } else goto handle_unusual;
492  continue;
493  // .operations_research.OptionalBoolean use_make_active = 11;
494  case 11:
495  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
496  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
497  CHK_(ptr);
498  _internal_set_use_make_active(static_cast<::operations_research::OptionalBoolean>(val));
499  } else goto handle_unusual;
500  continue;
501  // .operations_research.OptionalBoolean use_make_inactive = 12;
502  case 12:
503  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
504  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
505  CHK_(ptr);
506  _internal_set_use_make_inactive(static_cast<::operations_research::OptionalBoolean>(val));
507  } else goto handle_unusual;
508  continue;
509  // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
510  case 13:
511  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
512  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
513  CHK_(ptr);
514  _internal_set_use_make_chain_inactive(static_cast<::operations_research::OptionalBoolean>(val));
515  } else goto handle_unusual;
516  continue;
517  // .operations_research.OptionalBoolean use_swap_active = 14;
518  case 14:
519  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
520  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
521  CHK_(ptr);
522  _internal_set_use_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
523  } else goto handle_unusual;
524  continue;
525  // .operations_research.OptionalBoolean use_extended_swap_active = 15;
526  case 15:
527  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
528  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
529  CHK_(ptr);
530  _internal_set_use_extended_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
531  } else goto handle_unusual;
532  continue;
533  // .operations_research.OptionalBoolean use_path_lns = 16;
534  case 16:
535  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
536  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
537  CHK_(ptr);
538  _internal_set_use_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
539  } else goto handle_unusual;
540  continue;
541  // .operations_research.OptionalBoolean use_full_path_lns = 17;
542  case 17:
543  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
544  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
545  CHK_(ptr);
546  _internal_set_use_full_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
547  } else goto handle_unusual;
548  continue;
549  // .operations_research.OptionalBoolean use_tsp_lns = 18;
550  case 18:
551  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
552  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
553  CHK_(ptr);
554  _internal_set_use_tsp_lns(static_cast<::operations_research::OptionalBoolean>(val));
555  } else goto handle_unusual;
556  continue;
557  // .operations_research.OptionalBoolean use_inactive_lns = 19;
558  case 19:
559  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
560  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
561  CHK_(ptr);
562  _internal_set_use_inactive_lns(static_cast<::operations_research::OptionalBoolean>(val));
563  } else goto handle_unusual;
564  continue;
565  // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
566  case 20:
567  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
568  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
569  CHK_(ptr);
570  _internal_set_use_node_pair_swap_active(static_cast<::operations_research::OptionalBoolean>(val));
571  } else goto handle_unusual;
572  continue;
573  // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
574  case 21:
575  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
576  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
577  CHK_(ptr);
578  _internal_set_use_relocate_and_make_active(static_cast<::operations_research::OptionalBoolean>(val));
579  } else goto handle_unusual;
580  continue;
581  // .operations_research.OptionalBoolean use_exchange_pair = 22;
582  case 22:
583  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
584  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
585  CHK_(ptr);
586  _internal_set_use_exchange_pair(static_cast<::operations_research::OptionalBoolean>(val));
587  } else goto handle_unusual;
588  continue;
589  // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
590  case 23:
591  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
592  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
593  CHK_(ptr);
594  _internal_set_use_relocate_expensive_chain(static_cast<::operations_research::OptionalBoolean>(val));
595  } else goto handle_unusual;
596  continue;
597  // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
598  case 24:
599  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
600  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
601  CHK_(ptr);
602  _internal_set_use_light_relocate_pair(static_cast<::operations_research::OptionalBoolean>(val));
603  } else goto handle_unusual;
604  continue;
605  // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
606  case 25:
607  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
608  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
609  CHK_(ptr);
610  _internal_set_use_relocate_subtrip(static_cast<::operations_research::OptionalBoolean>(val));
611  } else goto handle_unusual;
612  continue;
613  // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
614  case 26:
615  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) {
616  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
617  CHK_(ptr);
618  _internal_set_use_exchange_subtrip(static_cast<::operations_research::OptionalBoolean>(val));
619  } else goto handle_unusual;
620  continue;
621  // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
622  case 27:
623  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
624  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
625  CHK_(ptr);
626  _internal_set_use_global_cheapest_insertion_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
627  } else goto handle_unusual;
628  continue;
629  // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
630  case 28:
631  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 224)) {
632  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
633  CHK_(ptr);
634  _internal_set_use_local_cheapest_insertion_path_lns(static_cast<::operations_research::OptionalBoolean>(val));
635  } else goto handle_unusual;
636  continue;
637  // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
638  case 29:
639  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
640  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
641  CHK_(ptr);
642  _internal_set_use_global_cheapest_insertion_expensive_chain_lns(static_cast<::operations_research::OptionalBoolean>(val));
643  } else goto handle_unusual;
644  continue;
645  // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
646  case 30:
647  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
648  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
649  CHK_(ptr);
650  _internal_set_use_local_cheapest_insertion_expensive_chain_lns(static_cast<::operations_research::OptionalBoolean>(val));
651  } else goto handle_unusual;
652  continue;
653  // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
654  case 31:
655  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
656  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
657  CHK_(ptr);
658  _internal_set_use_global_cheapest_insertion_close_nodes_lns(static_cast<::operations_research::OptionalBoolean>(val));
659  } else goto handle_unusual;
660  continue;
661  // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
662  case 32:
663  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
664  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
665  CHK_(ptr);
666  _internal_set_use_local_cheapest_insertion_close_nodes_lns(static_cast<::operations_research::OptionalBoolean>(val));
667  } else goto handle_unusual;
668  continue;
669  default: {
670  handle_unusual:
671  if ((tag & 7) == 4 || tag == 0) {
672  ctx->SetLastTag(tag);
673  goto success;
674  }
675  ptr = UnknownFieldParse(tag,
676  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
677  ptr, ctx);
678  CHK_(ptr != nullptr);
679  continue;
680  }
681  } // switch
682  } // while
683 success:
684  return ptr;
685 failure:
686  ptr = nullptr;
687  goto success;
688 #undef CHK_
689 }
690 
691 ::PROTOBUF_NAMESPACE_ID::uint8* RoutingSearchParameters_LocalSearchNeighborhoodOperators::_InternalSerialize(
692  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
693  // @@protoc_insertion_point(serialize_to_array_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
694  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
695  (void) cached_has_bits;
696 
697  // .operations_research.OptionalBoolean use_relocate = 1;
698  if (this->use_relocate() != 0) {
699  target = stream->EnsureSpace(target);
700  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
701  1, this->_internal_use_relocate(), target);
702  }
703 
704  // .operations_research.OptionalBoolean use_relocate_pair = 2;
705  if (this->use_relocate_pair() != 0) {
706  target = stream->EnsureSpace(target);
707  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
708  2, this->_internal_use_relocate_pair(), target);
709  }
710 
711  // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
712  if (this->use_relocate_neighbors() != 0) {
713  target = stream->EnsureSpace(target);
714  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
715  3, this->_internal_use_relocate_neighbors(), target);
716  }
717 
718  // .operations_research.OptionalBoolean use_exchange = 4;
719  if (this->use_exchange() != 0) {
720  target = stream->EnsureSpace(target);
721  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
722  4, this->_internal_use_exchange(), target);
723  }
724 
725  // .operations_research.OptionalBoolean use_cross = 5;
726  if (this->use_cross() != 0) {
727  target = stream->EnsureSpace(target);
728  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
729  5, this->_internal_use_cross(), target);
730  }
731 
732  // .operations_research.OptionalBoolean use_cross_exchange = 6;
733  if (this->use_cross_exchange() != 0) {
734  target = stream->EnsureSpace(target);
735  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
736  6, this->_internal_use_cross_exchange(), target);
737  }
738 
739  // .operations_research.OptionalBoolean use_two_opt = 7;
740  if (this->use_two_opt() != 0) {
741  target = stream->EnsureSpace(target);
742  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
743  7, this->_internal_use_two_opt(), target);
744  }
745 
746  // .operations_research.OptionalBoolean use_or_opt = 8;
747  if (this->use_or_opt() != 0) {
748  target = stream->EnsureSpace(target);
749  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
750  8, this->_internal_use_or_opt(), target);
751  }
752 
753  // .operations_research.OptionalBoolean use_lin_kernighan = 9;
754  if (this->use_lin_kernighan() != 0) {
755  target = stream->EnsureSpace(target);
756  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
757  9, this->_internal_use_lin_kernighan(), target);
758  }
759 
760  // .operations_research.OptionalBoolean use_tsp_opt = 10;
761  if (this->use_tsp_opt() != 0) {
762  target = stream->EnsureSpace(target);
763  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
764  10, this->_internal_use_tsp_opt(), target);
765  }
766 
767  // .operations_research.OptionalBoolean use_make_active = 11;
768  if (this->use_make_active() != 0) {
769  target = stream->EnsureSpace(target);
770  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
771  11, this->_internal_use_make_active(), target);
772  }
773 
774  // .operations_research.OptionalBoolean use_make_inactive = 12;
775  if (this->use_make_inactive() != 0) {
776  target = stream->EnsureSpace(target);
777  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
778  12, this->_internal_use_make_inactive(), target);
779  }
780 
781  // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
782  if (this->use_make_chain_inactive() != 0) {
783  target = stream->EnsureSpace(target);
784  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
785  13, this->_internal_use_make_chain_inactive(), target);
786  }
787 
788  // .operations_research.OptionalBoolean use_swap_active = 14;
789  if (this->use_swap_active() != 0) {
790  target = stream->EnsureSpace(target);
791  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
792  14, this->_internal_use_swap_active(), target);
793  }
794 
795  // .operations_research.OptionalBoolean use_extended_swap_active = 15;
796  if (this->use_extended_swap_active() != 0) {
797  target = stream->EnsureSpace(target);
798  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
799  15, this->_internal_use_extended_swap_active(), target);
800  }
801 
802  // .operations_research.OptionalBoolean use_path_lns = 16;
803  if (this->use_path_lns() != 0) {
804  target = stream->EnsureSpace(target);
805  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
806  16, this->_internal_use_path_lns(), target);
807  }
808 
809  // .operations_research.OptionalBoolean use_full_path_lns = 17;
810  if (this->use_full_path_lns() != 0) {
811  target = stream->EnsureSpace(target);
812  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
813  17, this->_internal_use_full_path_lns(), target);
814  }
815 
816  // .operations_research.OptionalBoolean use_tsp_lns = 18;
817  if (this->use_tsp_lns() != 0) {
818  target = stream->EnsureSpace(target);
819  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
820  18, this->_internal_use_tsp_lns(), target);
821  }
822 
823  // .operations_research.OptionalBoolean use_inactive_lns = 19;
824  if (this->use_inactive_lns() != 0) {
825  target = stream->EnsureSpace(target);
826  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
827  19, this->_internal_use_inactive_lns(), target);
828  }
829 
830  // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
831  if (this->use_node_pair_swap_active() != 0) {
832  target = stream->EnsureSpace(target);
833  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
834  20, this->_internal_use_node_pair_swap_active(), target);
835  }
836 
837  // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
838  if (this->use_relocate_and_make_active() != 0) {
839  target = stream->EnsureSpace(target);
840  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
841  21, this->_internal_use_relocate_and_make_active(), target);
842  }
843 
844  // .operations_research.OptionalBoolean use_exchange_pair = 22;
845  if (this->use_exchange_pair() != 0) {
846  target = stream->EnsureSpace(target);
847  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
848  22, this->_internal_use_exchange_pair(), target);
849  }
850 
851  // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
852  if (this->use_relocate_expensive_chain() != 0) {
853  target = stream->EnsureSpace(target);
854  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
855  23, this->_internal_use_relocate_expensive_chain(), target);
856  }
857 
858  // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
859  if (this->use_light_relocate_pair() != 0) {
860  target = stream->EnsureSpace(target);
861  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
862  24, this->_internal_use_light_relocate_pair(), target);
863  }
864 
865  // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
866  if (this->use_relocate_subtrip() != 0) {
867  target = stream->EnsureSpace(target);
868  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
869  25, this->_internal_use_relocate_subtrip(), target);
870  }
871 
872  // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
873  if (this->use_exchange_subtrip() != 0) {
874  target = stream->EnsureSpace(target);
875  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
876  26, this->_internal_use_exchange_subtrip(), target);
877  }
878 
879  // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
880  if (this->use_global_cheapest_insertion_path_lns() != 0) {
881  target = stream->EnsureSpace(target);
882  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
883  27, this->_internal_use_global_cheapest_insertion_path_lns(), target);
884  }
885 
886  // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
887  if (this->use_local_cheapest_insertion_path_lns() != 0) {
888  target = stream->EnsureSpace(target);
889  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
890  28, this->_internal_use_local_cheapest_insertion_path_lns(), target);
891  }
892 
893  // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
894  if (this->use_global_cheapest_insertion_expensive_chain_lns() != 0) {
895  target = stream->EnsureSpace(target);
896  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
897  29, this->_internal_use_global_cheapest_insertion_expensive_chain_lns(), target);
898  }
899 
900  // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
901  if (this->use_local_cheapest_insertion_expensive_chain_lns() != 0) {
902  target = stream->EnsureSpace(target);
903  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
904  30, this->_internal_use_local_cheapest_insertion_expensive_chain_lns(), target);
905  }
906 
907  // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
908  if (this->use_global_cheapest_insertion_close_nodes_lns() != 0) {
909  target = stream->EnsureSpace(target);
910  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
911  31, this->_internal_use_global_cheapest_insertion_close_nodes_lns(), target);
912  }
913 
914  // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
915  if (this->use_local_cheapest_insertion_close_nodes_lns() != 0) {
916  target = stream->EnsureSpace(target);
917  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
918  32, this->_internal_use_local_cheapest_insertion_close_nodes_lns(), target);
919  }
920 
921  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
922  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
923  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
924  }
925  // @@protoc_insertion_point(serialize_to_array_end:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
926  return target;
927 }
928 
929 size_t RoutingSearchParameters_LocalSearchNeighborhoodOperators::ByteSizeLong() const {
930 // @@protoc_insertion_point(message_byte_size_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
931  size_t total_size = 0;
932 
933  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
934  // Prevent compiler warnings about cached_has_bits being unused
935  (void) cached_has_bits;
936 
937  // .operations_research.OptionalBoolean use_relocate = 1;
938  if (this->use_relocate() != 0) {
939  total_size += 1 +
940  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate());
941  }
942 
943  // .operations_research.OptionalBoolean use_relocate_pair = 2;
944  if (this->use_relocate_pair() != 0) {
945  total_size += 1 +
946  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_pair());
947  }
948 
949  // .operations_research.OptionalBoolean use_relocate_neighbors = 3;
950  if (this->use_relocate_neighbors() != 0) {
951  total_size += 1 +
952  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_neighbors());
953  }
954 
955  // .operations_research.OptionalBoolean use_exchange = 4;
956  if (this->use_exchange() != 0) {
957  total_size += 1 +
958  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange());
959  }
960 
961  // .operations_research.OptionalBoolean use_cross = 5;
962  if (this->use_cross() != 0) {
963  total_size += 1 +
964  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross());
965  }
966 
967  // .operations_research.OptionalBoolean use_cross_exchange = 6;
968  if (this->use_cross_exchange() != 0) {
969  total_size += 1 +
970  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cross_exchange());
971  }
972 
973  // .operations_research.OptionalBoolean use_two_opt = 7;
974  if (this->use_two_opt() != 0) {
975  total_size += 1 +
976  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_two_opt());
977  }
978 
979  // .operations_research.OptionalBoolean use_or_opt = 8;
980  if (this->use_or_opt() != 0) {
981  total_size += 1 +
982  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_or_opt());
983  }
984 
985  // .operations_research.OptionalBoolean use_lin_kernighan = 9;
986  if (this->use_lin_kernighan() != 0) {
987  total_size += 1 +
988  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_lin_kernighan());
989  }
990 
991  // .operations_research.OptionalBoolean use_tsp_opt = 10;
992  if (this->use_tsp_opt() != 0) {
993  total_size += 1 +
994  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_opt());
995  }
996 
997  // .operations_research.OptionalBoolean use_make_active = 11;
998  if (this->use_make_active() != 0) {
999  total_size += 1 +
1000  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_active());
1001  }
1002 
1003  // .operations_research.OptionalBoolean use_make_inactive = 12;
1004  if (this->use_make_inactive() != 0) {
1005  total_size += 1 +
1006  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_inactive());
1007  }
1008 
1009  // .operations_research.OptionalBoolean use_make_chain_inactive = 13;
1010  if (this->use_make_chain_inactive() != 0) {
1011  total_size += 1 +
1012  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_make_chain_inactive());
1013  }
1014 
1015  // .operations_research.OptionalBoolean use_swap_active = 14;
1016  if (this->use_swap_active() != 0) {
1017  total_size += 1 +
1018  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_swap_active());
1019  }
1020 
1021  // .operations_research.OptionalBoolean use_extended_swap_active = 15;
1022  if (this->use_extended_swap_active() != 0) {
1023  total_size += 1 +
1024  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_extended_swap_active());
1025  }
1026 
1027  // .operations_research.OptionalBoolean use_path_lns = 16;
1028  if (this->use_path_lns() != 0) {
1029  total_size += 2 +
1030  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_path_lns());
1031  }
1032 
1033  // .operations_research.OptionalBoolean use_full_path_lns = 17;
1034  if (this->use_full_path_lns() != 0) {
1035  total_size += 2 +
1036  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_full_path_lns());
1037  }
1038 
1039  // .operations_research.OptionalBoolean use_tsp_lns = 18;
1040  if (this->use_tsp_lns() != 0) {
1041  total_size += 2 +
1042  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_tsp_lns());
1043  }
1044 
1045  // .operations_research.OptionalBoolean use_inactive_lns = 19;
1046  if (this->use_inactive_lns() != 0) {
1047  total_size += 2 +
1048  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_inactive_lns());
1049  }
1050 
1051  // .operations_research.OptionalBoolean use_node_pair_swap_active = 20;
1052  if (this->use_node_pair_swap_active() != 0) {
1053  total_size += 2 +
1054  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_node_pair_swap_active());
1055  }
1056 
1057  // .operations_research.OptionalBoolean use_relocate_and_make_active = 21;
1058  if (this->use_relocate_and_make_active() != 0) {
1059  total_size += 2 +
1060  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_and_make_active());
1061  }
1062 
1063  // .operations_research.OptionalBoolean use_exchange_pair = 22;
1064  if (this->use_exchange_pair() != 0) {
1065  total_size += 2 +
1066  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_pair());
1067  }
1068 
1069  // .operations_research.OptionalBoolean use_relocate_expensive_chain = 23;
1070  if (this->use_relocate_expensive_chain() != 0) {
1071  total_size += 2 +
1072  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_expensive_chain());
1073  }
1074 
1075  // .operations_research.OptionalBoolean use_light_relocate_pair = 24;
1076  if (this->use_light_relocate_pair() != 0) {
1077  total_size += 2 +
1078  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_light_relocate_pair());
1079  }
1080 
1081  // .operations_research.OptionalBoolean use_relocate_subtrip = 25;
1082  if (this->use_relocate_subtrip() != 0) {
1083  total_size += 2 +
1084  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_relocate_subtrip());
1085  }
1086 
1087  // .operations_research.OptionalBoolean use_exchange_subtrip = 26;
1088  if (this->use_exchange_subtrip() != 0) {
1089  total_size += 2 +
1090  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_exchange_subtrip());
1091  }
1092 
1093  // .operations_research.OptionalBoolean use_global_cheapest_insertion_path_lns = 27;
1094  if (this->use_global_cheapest_insertion_path_lns() != 0) {
1095  total_size += 2 +
1096  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_path_lns());
1097  }
1098 
1099  // .operations_research.OptionalBoolean use_local_cheapest_insertion_path_lns = 28;
1100  if (this->use_local_cheapest_insertion_path_lns() != 0) {
1101  total_size += 2 +
1102  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_path_lns());
1103  }
1104 
1105  // .operations_research.OptionalBoolean use_global_cheapest_insertion_expensive_chain_lns = 29;
1106  if (this->use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1107  total_size += 2 +
1108  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_expensive_chain_lns());
1109  }
1110 
1111  // .operations_research.OptionalBoolean use_local_cheapest_insertion_expensive_chain_lns = 30;
1112  if (this->use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1113  total_size += 2 +
1114  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_expensive_chain_lns());
1115  }
1116 
1117  // .operations_research.OptionalBoolean use_global_cheapest_insertion_close_nodes_lns = 31;
1118  if (this->use_global_cheapest_insertion_close_nodes_lns() != 0) {
1119  total_size += 2 +
1120  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_global_cheapest_insertion_close_nodes_lns());
1121  }
1122 
1123  // .operations_research.OptionalBoolean use_local_cheapest_insertion_close_nodes_lns = 32;
1124  if (this->use_local_cheapest_insertion_close_nodes_lns() != 0) {
1125  total_size += 2 +
1126  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_local_cheapest_insertion_close_nodes_lns());
1127  }
1128 
1129  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1130  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1131  _internal_metadata_, total_size, &_cached_size_);
1132  }
1133  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1134  SetCachedSize(cached_size);
1135  return total_size;
1136 }
1137 
1138 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1139 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1140  GOOGLE_DCHECK_NE(&from, this);
1141  const RoutingSearchParameters_LocalSearchNeighborhoodOperators* source =
1142  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingSearchParameters_LocalSearchNeighborhoodOperators>(
1143  &from);
1144  if (source == nullptr) {
1145  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1146  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1147  } else {
1148  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1149  MergeFrom(*source);
1150  }
1151 }
1152 
1153 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from) {
1154 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1155  GOOGLE_DCHECK_NE(&from, this);
1156  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1157  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1158  (void) cached_has_bits;
1159 
1160  if (from.use_relocate() != 0) {
1161  _internal_set_use_relocate(from._internal_use_relocate());
1162  }
1163  if (from.use_relocate_pair() != 0) {
1164  _internal_set_use_relocate_pair(from._internal_use_relocate_pair());
1165  }
1166  if (from.use_relocate_neighbors() != 0) {
1167  _internal_set_use_relocate_neighbors(from._internal_use_relocate_neighbors());
1168  }
1169  if (from.use_exchange() != 0) {
1170  _internal_set_use_exchange(from._internal_use_exchange());
1171  }
1172  if (from.use_cross() != 0) {
1173  _internal_set_use_cross(from._internal_use_cross());
1174  }
1175  if (from.use_cross_exchange() != 0) {
1176  _internal_set_use_cross_exchange(from._internal_use_cross_exchange());
1177  }
1178  if (from.use_two_opt() != 0) {
1179  _internal_set_use_two_opt(from._internal_use_two_opt());
1180  }
1181  if (from.use_or_opt() != 0) {
1182  _internal_set_use_or_opt(from._internal_use_or_opt());
1183  }
1184  if (from.use_lin_kernighan() != 0) {
1185  _internal_set_use_lin_kernighan(from._internal_use_lin_kernighan());
1186  }
1187  if (from.use_tsp_opt() != 0) {
1188  _internal_set_use_tsp_opt(from._internal_use_tsp_opt());
1189  }
1190  if (from.use_make_active() != 0) {
1191  _internal_set_use_make_active(from._internal_use_make_active());
1192  }
1193  if (from.use_make_inactive() != 0) {
1194  _internal_set_use_make_inactive(from._internal_use_make_inactive());
1195  }
1196  if (from.use_make_chain_inactive() != 0) {
1197  _internal_set_use_make_chain_inactive(from._internal_use_make_chain_inactive());
1198  }
1199  if (from.use_swap_active() != 0) {
1200  _internal_set_use_swap_active(from._internal_use_swap_active());
1201  }
1202  if (from.use_extended_swap_active() != 0) {
1203  _internal_set_use_extended_swap_active(from._internal_use_extended_swap_active());
1204  }
1205  if (from.use_path_lns() != 0) {
1206  _internal_set_use_path_lns(from._internal_use_path_lns());
1207  }
1208  if (from.use_full_path_lns() != 0) {
1209  _internal_set_use_full_path_lns(from._internal_use_full_path_lns());
1210  }
1211  if (from.use_tsp_lns() != 0) {
1212  _internal_set_use_tsp_lns(from._internal_use_tsp_lns());
1213  }
1214  if (from.use_inactive_lns() != 0) {
1215  _internal_set_use_inactive_lns(from._internal_use_inactive_lns());
1216  }
1217  if (from.use_node_pair_swap_active() != 0) {
1218  _internal_set_use_node_pair_swap_active(from._internal_use_node_pair_swap_active());
1219  }
1220  if (from.use_relocate_and_make_active() != 0) {
1221  _internal_set_use_relocate_and_make_active(from._internal_use_relocate_and_make_active());
1222  }
1223  if (from.use_exchange_pair() != 0) {
1224  _internal_set_use_exchange_pair(from._internal_use_exchange_pair());
1225  }
1226  if (from.use_relocate_expensive_chain() != 0) {
1227  _internal_set_use_relocate_expensive_chain(from._internal_use_relocate_expensive_chain());
1228  }
1229  if (from.use_light_relocate_pair() != 0) {
1230  _internal_set_use_light_relocate_pair(from._internal_use_light_relocate_pair());
1231  }
1232  if (from.use_relocate_subtrip() != 0) {
1233  _internal_set_use_relocate_subtrip(from._internal_use_relocate_subtrip());
1234  }
1235  if (from.use_exchange_subtrip() != 0) {
1236  _internal_set_use_exchange_subtrip(from._internal_use_exchange_subtrip());
1237  }
1238  if (from.use_global_cheapest_insertion_path_lns() != 0) {
1239  _internal_set_use_global_cheapest_insertion_path_lns(from._internal_use_global_cheapest_insertion_path_lns());
1240  }
1241  if (from.use_local_cheapest_insertion_path_lns() != 0) {
1242  _internal_set_use_local_cheapest_insertion_path_lns(from._internal_use_local_cheapest_insertion_path_lns());
1243  }
1244  if (from.use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1245  _internal_set_use_global_cheapest_insertion_expensive_chain_lns(from._internal_use_global_cheapest_insertion_expensive_chain_lns());
1246  }
1247  if (from.use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1248  _internal_set_use_local_cheapest_insertion_expensive_chain_lns(from._internal_use_local_cheapest_insertion_expensive_chain_lns());
1249  }
1250  if (from.use_global_cheapest_insertion_close_nodes_lns() != 0) {
1251  _internal_set_use_global_cheapest_insertion_close_nodes_lns(from._internal_use_global_cheapest_insertion_close_nodes_lns());
1252  }
1253  if (from.use_local_cheapest_insertion_close_nodes_lns() != 0) {
1254  _internal_set_use_local_cheapest_insertion_close_nodes_lns(from._internal_use_local_cheapest_insertion_close_nodes_lns());
1255  }
1256 }
1257 
1258 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1259 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1260  if (&from == this) return;
1261  Clear();
1262  MergeFrom(from);
1263 }
1264 
1265 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::CopyFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators& from) {
1266 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1267  if (&from == this) return;
1268  Clear();
1269  MergeFrom(from);
1270 }
1271 
1272 bool RoutingSearchParameters_LocalSearchNeighborhoodOperators::IsInitialized() const {
1273  return true;
1274 }
1275 
1276 void RoutingSearchParameters_LocalSearchNeighborhoodOperators::InternalSwap(RoutingSearchParameters_LocalSearchNeighborhoodOperators* other) {
1277  using std::swap;
1278  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1279  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1280  PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_local_cheapest_insertion_close_nodes_lns_)
1281  + sizeof(RoutingSearchParameters_LocalSearchNeighborhoodOperators::use_local_cheapest_insertion_close_nodes_lns_)
1282  - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_LocalSearchNeighborhoodOperators, use_relocate_)>(
1283  reinterpret_cast<char*>(&use_relocate_),
1284  reinterpret_cast<char*>(&other->use_relocate_));
1285 }
1286 
1287 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingSearchParameters_LocalSearchNeighborhoodOperators::GetMetadata() const {
1288  return GetMetadataStatic();
1289 }
1290 
1291 
1292 // ===================================================================
1293 
1294 void RoutingSearchParameters::InitAsDefaultInstance() {
1296  ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::internal_default_instance());
1297  ::operations_research::_RoutingSearchParameters_default_instance_._instance.get_mutable()->time_limit_ = const_cast< PROTOBUF_NAMESPACE_ID::Duration*>(
1298  PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance());
1299  ::operations_research::_RoutingSearchParameters_default_instance_._instance.get_mutable()->lns_time_limit_ = const_cast< PROTOBUF_NAMESPACE_ID::Duration*>(
1300  PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance());
1301 }
1303  public:
1304  static const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators& local_search_operators(const RoutingSearchParameters* msg);
1305  static const PROTOBUF_NAMESPACE_ID::Duration& time_limit(const RoutingSearchParameters* msg);
1306  static const PROTOBUF_NAMESPACE_ID::Duration& lns_time_limit(const RoutingSearchParameters* msg);
1307 };
1308 
1309 const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators&
1311  return *msg->local_search_operators_;
1312 }
1313 const PROTOBUF_NAMESPACE_ID::Duration&
1314 RoutingSearchParameters::_Internal::time_limit(const RoutingSearchParameters* msg) {
1315  return *msg->time_limit_;
1316 }
1317 const PROTOBUF_NAMESPACE_ID::Duration&
1318 RoutingSearchParameters::_Internal::lns_time_limit(const RoutingSearchParameters* msg) {
1319  return *msg->lns_time_limit_;
1320 }
1321 void RoutingSearchParameters::clear_time_limit() {
1322  if (GetArena() == nullptr && time_limit_ != nullptr) {
1323  delete time_limit_;
1324  }
1325  time_limit_ = nullptr;
1326 }
1327 void RoutingSearchParameters::clear_lns_time_limit() {
1328  if (GetArena() == nullptr && lns_time_limit_ != nullptr) {
1329  delete lns_time_limit_;
1330  }
1331  lns_time_limit_ = nullptr;
1332 }
1333 RoutingSearchParameters::RoutingSearchParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1334  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
1335  SharedCtor();
1336  RegisterArenaDtor(arena);
1337  // @@protoc_insertion_point(arena_constructor:operations_research.RoutingSearchParameters)
1338 }
1339 RoutingSearchParameters::RoutingSearchParameters(const RoutingSearchParameters& from)
1340  : ::PROTOBUF_NAMESPACE_ID::Message() {
1341  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1342  log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1343  if (!from._internal_log_tag().empty()) {
1344  log_tag_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_log_tag(),
1345  GetArena());
1346  }
1347  if (from._internal_has_local_search_operators()) {
1348  local_search_operators_ = new ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators(*from.local_search_operators_);
1349  } else {
1350  local_search_operators_ = nullptr;
1351  }
1352  if (from._internal_has_time_limit()) {
1353  time_limit_ = new PROTOBUF_NAMESPACE_ID::Duration(*from.time_limit_);
1354  } else {
1355  time_limit_ = nullptr;
1356  }
1357  if (from._internal_has_lns_time_limit()) {
1358  lns_time_limit_ = new PROTOBUF_NAMESPACE_ID::Duration(*from.lns_time_limit_);
1359  } else {
1360  lns_time_limit_ = nullptr;
1361  }
1362  ::memcpy(&first_solution_strategy_, &from.first_solution_strategy_,
1363  static_cast<size_t>(reinterpret_cast<char*>(&heuristic_close_nodes_lns_num_nodes_) -
1364  reinterpret_cast<char*>(&first_solution_strategy_)) + sizeof(heuristic_close_nodes_lns_num_nodes_));
1365  // @@protoc_insertion_point(copy_constructor:operations_research.RoutingSearchParameters)
1366 }
1367 
1368 void RoutingSearchParameters::SharedCtor() {
1370  log_tag_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1371  ::memset(&local_search_operators_, 0, static_cast<size_t>(
1372  reinterpret_cast<char*>(&heuristic_close_nodes_lns_num_nodes_) -
1373  reinterpret_cast<char*>(&local_search_operators_)) + sizeof(heuristic_close_nodes_lns_num_nodes_));
1374 }
1375 
1376 RoutingSearchParameters::~RoutingSearchParameters() {
1377  // @@protoc_insertion_point(destructor:operations_research.RoutingSearchParameters)
1378  SharedDtor();
1379  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1380 }
1381 
1382 void RoutingSearchParameters::SharedDtor() {
1383  GOOGLE_DCHECK(GetArena() == nullptr);
1384  log_tag_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1385  if (this != internal_default_instance()) delete local_search_operators_;
1386  if (this != internal_default_instance()) delete time_limit_;
1387  if (this != internal_default_instance()) delete lns_time_limit_;
1388 }
1389 
1390 void RoutingSearchParameters::ArenaDtor(void* object) {
1391  RoutingSearchParameters* _this = reinterpret_cast< RoutingSearchParameters* >(object);
1392  (void)_this;
1393 }
1394 void RoutingSearchParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1395 }
1396 void RoutingSearchParameters::SetCachedSize(int size) const {
1397  _cached_size_.Set(size);
1398 }
1399 const RoutingSearchParameters& RoutingSearchParameters::default_instance() {
1401  return *internal_default_instance();
1402 }
1403 
1404 
1405 void RoutingSearchParameters::Clear() {
1406 // @@protoc_insertion_point(message_clear_start:operations_research.RoutingSearchParameters)
1407  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1408  // Prevent compiler warnings about cached_has_bits being unused
1409  (void) cached_has_bits;
1410 
1411  log_tag_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
1412  if (GetArena() == nullptr && local_search_operators_ != nullptr) {
1413  delete local_search_operators_;
1414  }
1415  local_search_operators_ = nullptr;
1416  if (GetArena() == nullptr && time_limit_ != nullptr) {
1417  delete time_limit_;
1418  }
1419  time_limit_ = nullptr;
1420  if (GetArena() == nullptr && lns_time_limit_ != nullptr) {
1421  delete lns_time_limit_;
1422  }
1423  lns_time_limit_ = nullptr;
1424  ::memset(&first_solution_strategy_, 0, static_cast<size_t>(
1425  reinterpret_cast<char*>(&heuristic_close_nodes_lns_num_nodes_) -
1426  reinterpret_cast<char*>(&first_solution_strategy_)) + sizeof(heuristic_close_nodes_lns_num_nodes_));
1427  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1428 }
1429 
1430 const char* RoutingSearchParameters::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1431 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1432  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
1433  while (!ctx->Done(&ptr)) {
1435  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1436  CHK_(ptr);
1437  switch (tag >> 3) {
1438  // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
1439  case 1:
1440  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1441  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1442  CHK_(ptr);
1443  _internal_set_first_solution_strategy(static_cast<::operations_research::FirstSolutionStrategy_Value>(val));
1444  } else goto handle_unusual;
1445  continue;
1446  // bool use_unfiltered_first_solution_strategy = 2;
1447  case 2:
1448  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1449  use_unfiltered_first_solution_strategy_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1450  CHK_(ptr);
1451  } else goto handle_unusual;
1452  continue;
1453  // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
1454  case 3:
1455  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
1456  ptr = ctx->ParseMessage(_internal_mutable_local_search_operators(), ptr);
1457  CHK_(ptr);
1458  } else goto handle_unusual;
1459  continue;
1460  // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
1461  case 4:
1462  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
1463  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1464  CHK_(ptr);
1465  _internal_set_local_search_metaheuristic(static_cast<::operations_research::LocalSearchMetaheuristic_Value>(val));
1466  } else goto handle_unusual;
1467  continue;
1468  // double guided_local_search_lambda_coefficient = 5;
1469  case 5:
1470  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 41)) {
1471  guided_local_search_lambda_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1472  ptr += sizeof(double);
1473  } else goto handle_unusual;
1474  continue;
1475  // bool use_depth_first_search = 6;
1476  case 6:
1477  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
1478  use_depth_first_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1479  CHK_(ptr);
1480  } else goto handle_unusual;
1481  continue;
1482  // double optimization_step = 7;
1483  case 7:
1484  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 57)) {
1485  optimization_step_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1486  ptr += sizeof(double);
1487  } else goto handle_unusual;
1488  continue;
1489  // int64 solution_limit = 8;
1490  case 8:
1491  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
1492  solution_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1493  CHK_(ptr);
1494  } else goto handle_unusual;
1495  continue;
1496  // .google.protobuf.Duration time_limit = 9;
1497  case 9:
1498  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
1499  ptr = ctx->ParseMessage(_internal_mutable_time_limit(), ptr);
1500  CHK_(ptr);
1501  } else goto handle_unusual;
1502  continue;
1503  // .google.protobuf.Duration lns_time_limit = 10;
1504  case 10:
1505  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
1506  ptr = ctx->ParseMessage(_internal_mutable_lns_time_limit(), ptr);
1507  CHK_(ptr);
1508  } else goto handle_unusual;
1509  continue;
1510  // bool use_full_propagation = 11;
1511  case 11:
1512  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
1513  use_full_propagation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1514  CHK_(ptr);
1515  } else goto handle_unusual;
1516  continue;
1517  // bool log_search = 13;
1518  case 13:
1519  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
1520  log_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1521  CHK_(ptr);
1522  } else goto handle_unusual;
1523  continue;
1524  // double savings_neighbors_ratio = 14;
1525  case 14:
1526  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 113)) {
1527  savings_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1528  ptr += sizeof(double);
1529  } else goto handle_unusual;
1530  continue;
1531  // bool savings_add_reverse_arcs = 15;
1532  case 15:
1533  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
1534  savings_add_reverse_arcs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1535  CHK_(ptr);
1536  } else goto handle_unusual;
1537  continue;
1538  // double cheapest_insertion_farthest_seeds_ratio = 16;
1539  case 16:
1540  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 129)) {
1541  cheapest_insertion_farthest_seeds_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1542  ptr += sizeof(double);
1543  } else goto handle_unusual;
1544  continue;
1545  // int32 number_of_solutions_to_collect = 17;
1546  case 17:
1547  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
1548  number_of_solutions_to_collect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1549  CHK_(ptr);
1550  } else goto handle_unusual;
1551  continue;
1552  // double savings_arc_coefficient = 18;
1553  case 18:
1554  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 145)) {
1555  savings_arc_coefficient_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1556  ptr += sizeof(double);
1557  } else goto handle_unusual;
1558  continue;
1559  // bool savings_parallel_routes = 19;
1560  case 19:
1561  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
1562  savings_parallel_routes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1563  CHK_(ptr);
1564  } else goto handle_unusual;
1565  continue;
1566  // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
1567  case 20:
1568  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
1569  relocate_expensive_chain_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1570  CHK_(ptr);
1571  } else goto handle_unusual;
1572  continue;
1573  // double cheapest_insertion_first_solution_neighbors_ratio = 21;
1574  case 21:
1575  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 169)) {
1576  cheapest_insertion_first_solution_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1577  ptr += sizeof(double);
1578  } else goto handle_unusual;
1579  continue;
1580  // double log_cost_scaling_factor = 22;
1581  case 22:
1582  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
1583  log_cost_scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1584  ptr += sizeof(double);
1585  } else goto handle_unusual;
1586  continue;
1587  // double savings_max_memory_usage_bytes = 23;
1588  case 23:
1589  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 185)) {
1590  savings_max_memory_usage_bytes_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1591  ptr += sizeof(double);
1592  } else goto handle_unusual;
1593  continue;
1594  // .operations_research.OptionalBoolean use_cp_sat = 27;
1595  case 27:
1596  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
1597  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1598  CHK_(ptr);
1599  _internal_set_use_cp_sat(static_cast<::operations_research::OptionalBoolean>(val));
1600  } else goto handle_unusual;
1601  continue;
1602  // .operations_research.OptionalBoolean use_cp = 28;
1603  case 28:
1604  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 224)) {
1605  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1606  CHK_(ptr);
1607  _internal_set_use_cp(static_cast<::operations_research::OptionalBoolean>(val));
1608  } else goto handle_unusual;
1609  continue;
1610  // double log_cost_offset = 29;
1611  case 29:
1612  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 233)) {
1613  log_cost_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1614  ptr += sizeof(double);
1615  } else goto handle_unusual;
1616  continue;
1617  // bool christofides_use_minimum_matching = 30;
1618  case 30:
1619  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
1620  christofides_use_minimum_matching_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1621  CHK_(ptr);
1622  } else goto handle_unusual;
1623  continue;
1624  // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
1625  case 31:
1626  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 249)) {
1627  cheapest_insertion_ls_operator_neighbors_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1628  ptr += sizeof(double);
1629  } else goto handle_unusual;
1630  continue;
1631  // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
1632  case 32:
1633  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
1634  heuristic_expensive_chain_lns_num_arcs_to_consider_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1635  CHK_(ptr);
1636  } else goto handle_unusual;
1637  continue;
1638  // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
1639  case 33:
1640  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1641  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1642  CHK_(ptr);
1643  _internal_set_continuous_scheduling_solver(static_cast<::operations_research::RoutingSearchParameters_SchedulingSolver>(val));
1644  } else goto handle_unusual;
1645  continue;
1646  // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
1647  case 34:
1648  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1649  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1650  CHK_(ptr);
1651  _internal_set_mixed_integer_scheduling_solver(static_cast<::operations_research::RoutingSearchParameters_SchedulingSolver>(val));
1652  } else goto handle_unusual;
1653  continue;
1654  // int32 heuristic_close_nodes_lns_num_nodes = 35;
1655  case 35:
1656  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1657  heuristic_close_nodes_lns_num_nodes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1658  CHK_(ptr);
1659  } else goto handle_unusual;
1660  continue;
1661  // string log_tag = 36;
1662  case 36:
1663  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
1664  auto str = _internal_mutable_log_tag();
1665  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1666  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.RoutingSearchParameters.log_tag"));
1667  CHK_(ptr);
1668  } else goto handle_unusual;
1669  continue;
1670  default: {
1671  handle_unusual:
1672  if ((tag & 7) == 4 || tag == 0) {
1673  ctx->SetLastTag(tag);
1674  goto success;
1675  }
1676  ptr = UnknownFieldParse(tag,
1677  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1678  ptr, ctx);
1679  CHK_(ptr != nullptr);
1680  continue;
1681  }
1682  } // switch
1683  } // while
1684 success:
1685  return ptr;
1686 failure:
1687  ptr = nullptr;
1688  goto success;
1689 #undef CHK_
1690 }
1691 
1692 ::PROTOBUF_NAMESPACE_ID::uint8* RoutingSearchParameters::_InternalSerialize(
1693  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1694  // @@protoc_insertion_point(serialize_to_array_start:operations_research.RoutingSearchParameters)
1695  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1696  (void) cached_has_bits;
1697 
1698  // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
1699  if (this->first_solution_strategy() != 0) {
1700  target = stream->EnsureSpace(target);
1701  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1702  1, this->_internal_first_solution_strategy(), target);
1703  }
1704 
1705  // bool use_unfiltered_first_solution_strategy = 2;
1706  if (this->use_unfiltered_first_solution_strategy() != 0) {
1707  target = stream->EnsureSpace(target);
1708  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_use_unfiltered_first_solution_strategy(), target);
1709  }
1710 
1711  // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
1712  if (this->has_local_search_operators()) {
1713  target = stream->EnsureSpace(target);
1714  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1715  InternalWriteMessage(
1716  3, _Internal::local_search_operators(this), target, stream);
1717  }
1718 
1719  // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
1720  if (this->local_search_metaheuristic() != 0) {
1721  target = stream->EnsureSpace(target);
1722  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1723  4, this->_internal_local_search_metaheuristic(), target);
1724  }
1725 
1726  // double guided_local_search_lambda_coefficient = 5;
1727  if (!(this->guided_local_search_lambda_coefficient() <= 0 && this->guided_local_search_lambda_coefficient() >= 0)) {
1728  target = stream->EnsureSpace(target);
1729  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(5, this->_internal_guided_local_search_lambda_coefficient(), target);
1730  }
1731 
1732  // bool use_depth_first_search = 6;
1733  if (this->use_depth_first_search() != 0) {
1734  target = stream->EnsureSpace(target);
1735  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_use_depth_first_search(), target);
1736  }
1737 
1738  // double optimization_step = 7;
1739  if (!(this->optimization_step() <= 0 && this->optimization_step() >= 0)) {
1740  target = stream->EnsureSpace(target);
1741  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(7, this->_internal_optimization_step(), target);
1742  }
1743 
1744  // int64 solution_limit = 8;
1745  if (this->solution_limit() != 0) {
1746  target = stream->EnsureSpace(target);
1747  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_solution_limit(), target);
1748  }
1749 
1750  // .google.protobuf.Duration time_limit = 9;
1751  if (this->has_time_limit()) {
1752  target = stream->EnsureSpace(target);
1753  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1754  InternalWriteMessage(
1755  9, _Internal::time_limit(this), target, stream);
1756  }
1757 
1758  // .google.protobuf.Duration lns_time_limit = 10;
1759  if (this->has_lns_time_limit()) {
1760  target = stream->EnsureSpace(target);
1761  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1762  InternalWriteMessage(
1763  10, _Internal::lns_time_limit(this), target, stream);
1764  }
1765 
1766  // bool use_full_propagation = 11;
1767  if (this->use_full_propagation() != 0) {
1768  target = stream->EnsureSpace(target);
1769  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_use_full_propagation(), target);
1770  }
1771 
1772  // bool log_search = 13;
1773  if (this->log_search() != 0) {
1774  target = stream->EnsureSpace(target);
1775  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_log_search(), target);
1776  }
1777 
1778  // double savings_neighbors_ratio = 14;
1779  if (!(this->savings_neighbors_ratio() <= 0 && this->savings_neighbors_ratio() >= 0)) {
1780  target = stream->EnsureSpace(target);
1781  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_savings_neighbors_ratio(), target);
1782  }
1783 
1784  // bool savings_add_reverse_arcs = 15;
1785  if (this->savings_add_reverse_arcs() != 0) {
1786  target = stream->EnsureSpace(target);
1787  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_savings_add_reverse_arcs(), target);
1788  }
1789 
1790  // double cheapest_insertion_farthest_seeds_ratio = 16;
1791  if (!(this->cheapest_insertion_farthest_seeds_ratio() <= 0 && this->cheapest_insertion_farthest_seeds_ratio() >= 0)) {
1792  target = stream->EnsureSpace(target);
1793  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_cheapest_insertion_farthest_seeds_ratio(), target);
1794  }
1795 
1796  // int32 number_of_solutions_to_collect = 17;
1797  if (this->number_of_solutions_to_collect() != 0) {
1798  target = stream->EnsureSpace(target);
1799  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(17, this->_internal_number_of_solutions_to_collect(), target);
1800  }
1801 
1802  // double savings_arc_coefficient = 18;
1803  if (!(this->savings_arc_coefficient() <= 0 && this->savings_arc_coefficient() >= 0)) {
1804  target = stream->EnsureSpace(target);
1805  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(18, this->_internal_savings_arc_coefficient(), target);
1806  }
1807 
1808  // bool savings_parallel_routes = 19;
1809  if (this->savings_parallel_routes() != 0) {
1810  target = stream->EnsureSpace(target);
1811  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(19, this->_internal_savings_parallel_routes(), target);
1812  }
1813 
1814  // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
1815  if (this->relocate_expensive_chain_num_arcs_to_consider() != 0) {
1816  target = stream->EnsureSpace(target);
1817  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_relocate_expensive_chain_num_arcs_to_consider(), target);
1818  }
1819 
1820  // double cheapest_insertion_first_solution_neighbors_ratio = 21;
1821  if (!(this->cheapest_insertion_first_solution_neighbors_ratio() <= 0 && this->cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
1822  target = stream->EnsureSpace(target);
1823  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_cheapest_insertion_first_solution_neighbors_ratio(), target);
1824  }
1825 
1826  // double log_cost_scaling_factor = 22;
1827  if (!(this->log_cost_scaling_factor() <= 0 && this->log_cost_scaling_factor() >= 0)) {
1828  target = stream->EnsureSpace(target);
1829  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_log_cost_scaling_factor(), target);
1830  }
1831 
1832  // double savings_max_memory_usage_bytes = 23;
1833  if (!(this->savings_max_memory_usage_bytes() <= 0 && this->savings_max_memory_usage_bytes() >= 0)) {
1834  target = stream->EnsureSpace(target);
1835  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(23, this->_internal_savings_max_memory_usage_bytes(), target);
1836  }
1837 
1838  // .operations_research.OptionalBoolean use_cp_sat = 27;
1839  if (this->use_cp_sat() != 0) {
1840  target = stream->EnsureSpace(target);
1841  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1842  27, this->_internal_use_cp_sat(), target);
1843  }
1844 
1845  // .operations_research.OptionalBoolean use_cp = 28;
1846  if (this->use_cp() != 0) {
1847  target = stream->EnsureSpace(target);
1848  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1849  28, this->_internal_use_cp(), target);
1850  }
1851 
1852  // double log_cost_offset = 29;
1853  if (!(this->log_cost_offset() <= 0 && this->log_cost_offset() >= 0)) {
1854  target = stream->EnsureSpace(target);
1855  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(29, this->_internal_log_cost_offset(), target);
1856  }
1857 
1858  // bool christofides_use_minimum_matching = 30;
1859  if (this->christofides_use_minimum_matching() != 0) {
1860  target = stream->EnsureSpace(target);
1861  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(30, this->_internal_christofides_use_minimum_matching(), target);
1862  }
1863 
1864  // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
1865  if (!(this->cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && this->cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
1866  target = stream->EnsureSpace(target);
1867  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(31, this->_internal_cheapest_insertion_ls_operator_neighbors_ratio(), target);
1868  }
1869 
1870  // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
1871  if (this->heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
1872  target = stream->EnsureSpace(target);
1873  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(32, this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);
1874  }
1875 
1876  // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
1877  if (this->continuous_scheduling_solver() != 0) {
1878  target = stream->EnsureSpace(target);
1879  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1880  33, this->_internal_continuous_scheduling_solver(), target);
1881  }
1882 
1883  // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
1884  if (this->mixed_integer_scheduling_solver() != 0) {
1885  target = stream->EnsureSpace(target);
1886  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1887  34, this->_internal_mixed_integer_scheduling_solver(), target);
1888  }
1889 
1890  // int32 heuristic_close_nodes_lns_num_nodes = 35;
1891  if (this->heuristic_close_nodes_lns_num_nodes() != 0) {
1892  target = stream->EnsureSpace(target);
1893  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_heuristic_close_nodes_lns_num_nodes(), target);
1894  }
1895 
1896  // string log_tag = 36;
1897  if (this->log_tag().size() > 0) {
1898  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
1899  this->_internal_log_tag().data(), static_cast<int>(this->_internal_log_tag().length()),
1900  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
1901  "operations_research.RoutingSearchParameters.log_tag");
1902  target = stream->WriteStringMaybeAliased(
1903  36, this->_internal_log_tag(), target);
1904  }
1905 
1906  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1907  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1908  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1909  }
1910  // @@protoc_insertion_point(serialize_to_array_end:operations_research.RoutingSearchParameters)
1911  return target;
1912 }
1913 
1914 size_t RoutingSearchParameters::ByteSizeLong() const {
1915 // @@protoc_insertion_point(message_byte_size_start:operations_research.RoutingSearchParameters)
1916  size_t total_size = 0;
1917 
1918  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1919  // Prevent compiler warnings about cached_has_bits being unused
1920  (void) cached_has_bits;
1921 
1922  // string log_tag = 36;
1923  if (this->log_tag().size() > 0) {
1924  total_size += 2 +
1925  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1926  this->_internal_log_tag());
1927  }
1928 
1929  // .operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators = 3;
1930  if (this->has_local_search_operators()) {
1931  total_size += 1 +
1932  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1933  *local_search_operators_);
1934  }
1935 
1936  // .google.protobuf.Duration time_limit = 9;
1937  if (this->has_time_limit()) {
1938  total_size += 1 +
1939  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1940  *time_limit_);
1941  }
1942 
1943  // .google.protobuf.Duration lns_time_limit = 10;
1944  if (this->has_lns_time_limit()) {
1945  total_size += 1 +
1946  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1947  *lns_time_limit_);
1948  }
1949 
1950  // .operations_research.FirstSolutionStrategy.Value first_solution_strategy = 1;
1951  if (this->first_solution_strategy() != 0) {
1952  total_size += 1 +
1953  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_first_solution_strategy());
1954  }
1955 
1956  // .operations_research.LocalSearchMetaheuristic.Value local_search_metaheuristic = 4;
1957  if (this->local_search_metaheuristic() != 0) {
1958  total_size += 1 +
1959  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_local_search_metaheuristic());
1960  }
1961 
1962  // double guided_local_search_lambda_coefficient = 5;
1963  if (!(this->guided_local_search_lambda_coefficient() <= 0 && this->guided_local_search_lambda_coefficient() >= 0)) {
1964  total_size += 1 + 8;
1965  }
1966 
1967  // double optimization_step = 7;
1968  if (!(this->optimization_step() <= 0 && this->optimization_step() >= 0)) {
1969  total_size += 1 + 8;
1970  }
1971 
1972  // int64 solution_limit = 8;
1973  if (this->solution_limit() != 0) {
1974  total_size += 1 +
1975  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1976  this->_internal_solution_limit());
1977  }
1978 
1979  // bool use_depth_first_search = 6;
1980  if (this->use_depth_first_search() != 0) {
1981  total_size += 1 + 1;
1982  }
1983 
1984  // bool use_full_propagation = 11;
1985  if (this->use_full_propagation() != 0) {
1986  total_size += 1 + 1;
1987  }
1988 
1989  // bool log_search = 13;
1990  if (this->log_search() != 0) {
1991  total_size += 1 + 1;
1992  }
1993 
1994  // bool use_unfiltered_first_solution_strategy = 2;
1995  if (this->use_unfiltered_first_solution_strategy() != 0) {
1996  total_size += 1 + 1;
1997  }
1998 
1999  // bool savings_add_reverse_arcs = 15;
2000  if (this->savings_add_reverse_arcs() != 0) {
2001  total_size += 1 + 1;
2002  }
2003 
2004  // bool savings_parallel_routes = 19;
2005  if (this->savings_parallel_routes() != 0) {
2006  total_size += 2 + 1;
2007  }
2008 
2009  // bool christofides_use_minimum_matching = 30;
2010  if (this->christofides_use_minimum_matching() != 0) {
2011  total_size += 2 + 1;
2012  }
2013 
2014  // double savings_neighbors_ratio = 14;
2015  if (!(this->savings_neighbors_ratio() <= 0 && this->savings_neighbors_ratio() >= 0)) {
2016  total_size += 1 + 8;
2017  }
2018 
2019  // double cheapest_insertion_farthest_seeds_ratio = 16;
2020  if (!(this->cheapest_insertion_farthest_seeds_ratio() <= 0 && this->cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2021  total_size += 2 + 8;
2022  }
2023 
2024  // double savings_arc_coefficient = 18;
2025  if (!(this->savings_arc_coefficient() <= 0 && this->savings_arc_coefficient() >= 0)) {
2026  total_size += 2 + 8;
2027  }
2028 
2029  // int32 number_of_solutions_to_collect = 17;
2030  if (this->number_of_solutions_to_collect() != 0) {
2031  total_size += 2 +
2032  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2033  this->_internal_number_of_solutions_to_collect());
2034  }
2035 
2036  // int32 relocate_expensive_chain_num_arcs_to_consider = 20;
2037  if (this->relocate_expensive_chain_num_arcs_to_consider() != 0) {
2038  total_size += 2 +
2039  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2040  this->_internal_relocate_expensive_chain_num_arcs_to_consider());
2041  }
2042 
2043  // double cheapest_insertion_first_solution_neighbors_ratio = 21;
2044  if (!(this->cheapest_insertion_first_solution_neighbors_ratio() <= 0 && this->cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2045  total_size += 2 + 8;
2046  }
2047 
2048  // double log_cost_scaling_factor = 22;
2049  if (!(this->log_cost_scaling_factor() <= 0 && this->log_cost_scaling_factor() >= 0)) {
2050  total_size += 2 + 8;
2051  }
2052 
2053  // double savings_max_memory_usage_bytes = 23;
2054  if (!(this->savings_max_memory_usage_bytes() <= 0 && this->savings_max_memory_usage_bytes() >= 0)) {
2055  total_size += 2 + 8;
2056  }
2057 
2058  // .operations_research.OptionalBoolean use_cp_sat = 27;
2059  if (this->use_cp_sat() != 0) {
2060  total_size += 2 +
2061  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp_sat());
2062  }
2063 
2064  // .operations_research.OptionalBoolean use_cp = 28;
2065  if (this->use_cp() != 0) {
2066  total_size += 2 +
2067  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_use_cp());
2068  }
2069 
2070  // double log_cost_offset = 29;
2071  if (!(this->log_cost_offset() <= 0 && this->log_cost_offset() >= 0)) {
2072  total_size += 2 + 8;
2073  }
2074 
2075  // double cheapest_insertion_ls_operator_neighbors_ratio = 31;
2076  if (!(this->cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && this->cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2077  total_size += 2 + 8;
2078  }
2079 
2080  // int32 heuristic_expensive_chain_lns_num_arcs_to_consider = 32;
2081  if (this->heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2082  total_size += 2 +
2083  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2084  this->_internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2085  }
2086 
2087  // .operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
2088  if (this->continuous_scheduling_solver() != 0) {
2089  total_size += 2 +
2090  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_continuous_scheduling_solver());
2091  }
2092 
2093  // .operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
2094  if (this->mixed_integer_scheduling_solver() != 0) {
2095  total_size += 2 +
2096  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mixed_integer_scheduling_solver());
2097  }
2098 
2099  // int32 heuristic_close_nodes_lns_num_nodes = 35;
2100  if (this->heuristic_close_nodes_lns_num_nodes() != 0) {
2101  total_size += 2 +
2102  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2103  this->_internal_heuristic_close_nodes_lns_num_nodes());
2104  }
2105 
2106  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2107  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2108  _internal_metadata_, total_size, &_cached_size_);
2109  }
2110  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2111  SetCachedSize(cached_size);
2112  return total_size;
2113 }
2114 
2115 void RoutingSearchParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2116 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.RoutingSearchParameters)
2117  GOOGLE_DCHECK_NE(&from, this);
2118  const RoutingSearchParameters* source =
2119  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingSearchParameters>(
2120  &from);
2121  if (source == nullptr) {
2122  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.RoutingSearchParameters)
2123  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2124  } else {
2125  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.RoutingSearchParameters)
2126  MergeFrom(*source);
2127  }
2128 }
2129 
2130 void RoutingSearchParameters::MergeFrom(const RoutingSearchParameters& from) {
2131 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.RoutingSearchParameters)
2132  GOOGLE_DCHECK_NE(&from, this);
2133  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2134  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2135  (void) cached_has_bits;
2136 
2137  if (from.log_tag().size() > 0) {
2138  _internal_set_log_tag(from._internal_log_tag());
2139  }
2140  if (from.has_local_search_operators()) {
2141  _internal_mutable_local_search_operators()->::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeFrom(from._internal_local_search_operators());
2142  }
2143  if (from.has_time_limit()) {
2144  _internal_mutable_time_limit()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_time_limit());
2145  }
2146  if (from.has_lns_time_limit()) {
2147  _internal_mutable_lns_time_limit()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_lns_time_limit());
2148  }
2149  if (from.first_solution_strategy() != 0) {
2150  _internal_set_first_solution_strategy(from._internal_first_solution_strategy());
2151  }
2152  if (from.local_search_metaheuristic() != 0) {
2153  _internal_set_local_search_metaheuristic(from._internal_local_search_metaheuristic());
2154  }
2155  if (!(from.guided_local_search_lambda_coefficient() <= 0 && from.guided_local_search_lambda_coefficient() >= 0)) {
2156  _internal_set_guided_local_search_lambda_coefficient(from._internal_guided_local_search_lambda_coefficient());
2157  }
2158  if (!(from.optimization_step() <= 0 && from.optimization_step() >= 0)) {
2159  _internal_set_optimization_step(from._internal_optimization_step());
2160  }
2161  if (from.solution_limit() != 0) {
2162  _internal_set_solution_limit(from._internal_solution_limit());
2163  }
2164  if (from.use_depth_first_search() != 0) {
2165  _internal_set_use_depth_first_search(from._internal_use_depth_first_search());
2166  }
2167  if (from.use_full_propagation() != 0) {
2168  _internal_set_use_full_propagation(from._internal_use_full_propagation());
2169  }
2170  if (from.log_search() != 0) {
2171  _internal_set_log_search(from._internal_log_search());
2172  }
2173  if (from.use_unfiltered_first_solution_strategy() != 0) {
2174  _internal_set_use_unfiltered_first_solution_strategy(from._internal_use_unfiltered_first_solution_strategy());
2175  }
2176  if (from.savings_add_reverse_arcs() != 0) {
2177  _internal_set_savings_add_reverse_arcs(from._internal_savings_add_reverse_arcs());
2178  }
2179  if (from.savings_parallel_routes() != 0) {
2180  _internal_set_savings_parallel_routes(from._internal_savings_parallel_routes());
2181  }
2182  if (from.christofides_use_minimum_matching() != 0) {
2183  _internal_set_christofides_use_minimum_matching(from._internal_christofides_use_minimum_matching());
2184  }
2185  if (!(from.savings_neighbors_ratio() <= 0 && from.savings_neighbors_ratio() >= 0)) {
2186  _internal_set_savings_neighbors_ratio(from._internal_savings_neighbors_ratio());
2187  }
2188  if (!(from.cheapest_insertion_farthest_seeds_ratio() <= 0 && from.cheapest_insertion_farthest_seeds_ratio() >= 0)) {
2189  _internal_set_cheapest_insertion_farthest_seeds_ratio(from._internal_cheapest_insertion_farthest_seeds_ratio());
2190  }
2191  if (!(from.savings_arc_coefficient() <= 0 && from.savings_arc_coefficient() >= 0)) {
2192  _internal_set_savings_arc_coefficient(from._internal_savings_arc_coefficient());
2193  }
2194  if (from.number_of_solutions_to_collect() != 0) {
2195  _internal_set_number_of_solutions_to_collect(from._internal_number_of_solutions_to_collect());
2196  }
2197  if (from.relocate_expensive_chain_num_arcs_to_consider() != 0) {
2198  _internal_set_relocate_expensive_chain_num_arcs_to_consider(from._internal_relocate_expensive_chain_num_arcs_to_consider());
2199  }
2200  if (!(from.cheapest_insertion_first_solution_neighbors_ratio() <= 0 && from.cheapest_insertion_first_solution_neighbors_ratio() >= 0)) {
2201  _internal_set_cheapest_insertion_first_solution_neighbors_ratio(from._internal_cheapest_insertion_first_solution_neighbors_ratio());
2202  }
2203  if (!(from.log_cost_scaling_factor() <= 0 && from.log_cost_scaling_factor() >= 0)) {
2204  _internal_set_log_cost_scaling_factor(from._internal_log_cost_scaling_factor());
2205  }
2206  if (!(from.savings_max_memory_usage_bytes() <= 0 && from.savings_max_memory_usage_bytes() >= 0)) {
2207  _internal_set_savings_max_memory_usage_bytes(from._internal_savings_max_memory_usage_bytes());
2208  }
2209  if (from.use_cp_sat() != 0) {
2210  _internal_set_use_cp_sat(from._internal_use_cp_sat());
2211  }
2212  if (from.use_cp() != 0) {
2213  _internal_set_use_cp(from._internal_use_cp());
2214  }
2215  if (!(from.log_cost_offset() <= 0 && from.log_cost_offset() >= 0)) {
2216  _internal_set_log_cost_offset(from._internal_log_cost_offset());
2217  }
2218  if (!(from.cheapest_insertion_ls_operator_neighbors_ratio() <= 0 && from.cheapest_insertion_ls_operator_neighbors_ratio() >= 0)) {
2219  _internal_set_cheapest_insertion_ls_operator_neighbors_ratio(from._internal_cheapest_insertion_ls_operator_neighbors_ratio());
2220  }
2221  if (from.heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
2222  _internal_set_heuristic_expensive_chain_lns_num_arcs_to_consider(from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
2223  }
2224  if (from.continuous_scheduling_solver() != 0) {
2225  _internal_set_continuous_scheduling_solver(from._internal_continuous_scheduling_solver());
2226  }
2227  if (from.mixed_integer_scheduling_solver() != 0) {
2228  _internal_set_mixed_integer_scheduling_solver(from._internal_mixed_integer_scheduling_solver());
2229  }
2230  if (from.heuristic_close_nodes_lns_num_nodes() != 0) {
2231  _internal_set_heuristic_close_nodes_lns_num_nodes(from._internal_heuristic_close_nodes_lns_num_nodes());
2232  }
2233 }
2234 
2235 void RoutingSearchParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2236 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.RoutingSearchParameters)
2237  if (&from == this) return;
2238  Clear();
2239  MergeFrom(from);
2240 }
2241 
2242 void RoutingSearchParameters::CopyFrom(const RoutingSearchParameters& from) {
2243 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.RoutingSearchParameters)
2244  if (&from == this) return;
2245  Clear();
2246  MergeFrom(from);
2247 }
2248 
2249 bool RoutingSearchParameters::IsInitialized() const {
2250  return true;
2251 }
2252 
2253 void RoutingSearchParameters::InternalSwap(RoutingSearchParameters* other) {
2254  using std::swap;
2255  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2256  log_tag_.Swap(&other->log_tag_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2257  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2258  PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, heuristic_close_nodes_lns_num_nodes_)
2259  + sizeof(RoutingSearchParameters::heuristic_close_nodes_lns_num_nodes_)
2260  - PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, local_search_operators_)>(
2261  reinterpret_cast<char*>(&local_search_operators_),
2262  reinterpret_cast<char*>(&other->local_search_operators_));
2263 }
2264 
2265 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingSearchParameters::GetMetadata() const {
2266  return GetMetadataStatic();
2267 }
2268 
2269 
2270 // ===================================================================
2271 
2272 void RoutingModelParameters::InitAsDefaultInstance() {
2274  ::operations_research::ConstraintSolverParameters::internal_default_instance());
2275 }
2277  public:
2278  static const ::operations_research::ConstraintSolverParameters& solver_parameters(const RoutingModelParameters* msg);
2279 };
2280 
2281 const ::operations_research::ConstraintSolverParameters&
2282 RoutingModelParameters::_Internal::solver_parameters(const RoutingModelParameters* msg) {
2283  return *msg->solver_parameters_;
2284 }
2285 void RoutingModelParameters::clear_solver_parameters() {
2286  if (GetArena() == nullptr && solver_parameters_ != nullptr) {
2287  delete solver_parameters_;
2288  }
2289  solver_parameters_ = nullptr;
2290 }
2291 RoutingModelParameters::RoutingModelParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2292  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
2293  SharedCtor();
2294  RegisterArenaDtor(arena);
2295  // @@protoc_insertion_point(arena_constructor:operations_research.RoutingModelParameters)
2296 }
2297 RoutingModelParameters::RoutingModelParameters(const RoutingModelParameters& from)
2298  : ::PROTOBUF_NAMESPACE_ID::Message() {
2299  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2300  if (from._internal_has_solver_parameters()) {
2301  solver_parameters_ = new ::operations_research::ConstraintSolverParameters(*from.solver_parameters_);
2302  } else {
2303  solver_parameters_ = nullptr;
2304  }
2305  ::memcpy(&reduce_vehicle_cost_model_, &from.reduce_vehicle_cost_model_,
2306  static_cast<size_t>(reinterpret_cast<char*>(&max_callback_cache_size_) -
2307  reinterpret_cast<char*>(&reduce_vehicle_cost_model_)) + sizeof(max_callback_cache_size_));
2308  // @@protoc_insertion_point(copy_constructor:operations_research.RoutingModelParameters)
2309 }
2310 
2311 void RoutingModelParameters::SharedCtor() {
2313  ::memset(&solver_parameters_, 0, static_cast<size_t>(
2314  reinterpret_cast<char*>(&max_callback_cache_size_) -
2315  reinterpret_cast<char*>(&solver_parameters_)) + sizeof(max_callback_cache_size_));
2316 }
2317 
2318 RoutingModelParameters::~RoutingModelParameters() {
2319  // @@protoc_insertion_point(destructor:operations_research.RoutingModelParameters)
2320  SharedDtor();
2321  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2322 }
2323 
2324 void RoutingModelParameters::SharedDtor() {
2325  GOOGLE_DCHECK(GetArena() == nullptr);
2326  if (this != internal_default_instance()) delete solver_parameters_;
2327 }
2328 
2329 void RoutingModelParameters::ArenaDtor(void* object) {
2330  RoutingModelParameters* _this = reinterpret_cast< RoutingModelParameters* >(object);
2331  (void)_this;
2332 }
2333 void RoutingModelParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2334 }
2335 void RoutingModelParameters::SetCachedSize(int size) const {
2336  _cached_size_.Set(size);
2337 }
2338 const RoutingModelParameters& RoutingModelParameters::default_instance() {
2340  return *internal_default_instance();
2341 }
2342 
2343 
2344 void RoutingModelParameters::Clear() {
2345 // @@protoc_insertion_point(message_clear_start:operations_research.RoutingModelParameters)
2346  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2347  // Prevent compiler warnings about cached_has_bits being unused
2348  (void) cached_has_bits;
2349 
2350  if (GetArena() == nullptr && solver_parameters_ != nullptr) {
2351  delete solver_parameters_;
2352  }
2353  solver_parameters_ = nullptr;
2354  ::memset(&reduce_vehicle_cost_model_, 0, static_cast<size_t>(
2355  reinterpret_cast<char*>(&max_callback_cache_size_) -
2356  reinterpret_cast<char*>(&reduce_vehicle_cost_model_)) + sizeof(max_callback_cache_size_));
2357  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2358 }
2359 
2360 const char* RoutingModelParameters::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2361 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2362  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
2363  while (!ctx->Done(&ptr)) {
2365  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2366  CHK_(ptr);
2367  switch (tag >> 3) {
2368  // .operations_research.ConstraintSolverParameters solver_parameters = 1;
2369  case 1:
2370  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2371  ptr = ctx->ParseMessage(_internal_mutable_solver_parameters(), ptr);
2372  CHK_(ptr);
2373  } else goto handle_unusual;
2374  continue;
2375  // bool reduce_vehicle_cost_model = 2;
2376  case 2:
2377  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2378  reduce_vehicle_cost_model_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2379  CHK_(ptr);
2380  } else goto handle_unusual;
2381  continue;
2382  // int32 max_callback_cache_size = 3;
2383  case 3:
2384  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
2385  max_callback_cache_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2386  CHK_(ptr);
2387  } else goto handle_unusual;
2388  continue;
2389  default: {
2390  handle_unusual:
2391  if ((tag & 7) == 4 || tag == 0) {
2392  ctx->SetLastTag(tag);
2393  goto success;
2394  }
2395  ptr = UnknownFieldParse(tag,
2396  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2397  ptr, ctx);
2398  CHK_(ptr != nullptr);
2399  continue;
2400  }
2401  } // switch
2402  } // while
2403 success:
2404  return ptr;
2405 failure:
2406  ptr = nullptr;
2407  goto success;
2408 #undef CHK_
2409 }
2410 
2411 ::PROTOBUF_NAMESPACE_ID::uint8* RoutingModelParameters::_InternalSerialize(
2412  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2413  // @@protoc_insertion_point(serialize_to_array_start:operations_research.RoutingModelParameters)
2414  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2415  (void) cached_has_bits;
2416 
2417  // .operations_research.ConstraintSolverParameters solver_parameters = 1;
2418  if (this->has_solver_parameters()) {
2419  target = stream->EnsureSpace(target);
2420  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2421  InternalWriteMessage(
2422  1, _Internal::solver_parameters(this), target, stream);
2423  }
2424 
2425  // bool reduce_vehicle_cost_model = 2;
2426  if (this->reduce_vehicle_cost_model() != 0) {
2427  target = stream->EnsureSpace(target);
2428  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_reduce_vehicle_cost_model(), target);
2429  }
2430 
2431  // int32 max_callback_cache_size = 3;
2432  if (this->max_callback_cache_size() != 0) {
2433  target = stream->EnsureSpace(target);
2434  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_max_callback_cache_size(), target);
2435  }
2436 
2437  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2438  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2439  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2440  }
2441  // @@protoc_insertion_point(serialize_to_array_end:operations_research.RoutingModelParameters)
2442  return target;
2443 }
2444 
2445 size_t RoutingModelParameters::ByteSizeLong() const {
2446 // @@protoc_insertion_point(message_byte_size_start:operations_research.RoutingModelParameters)
2447  size_t total_size = 0;
2448 
2449  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2450  // Prevent compiler warnings about cached_has_bits being unused
2451  (void) cached_has_bits;
2452 
2453  // .operations_research.ConstraintSolverParameters solver_parameters = 1;
2454  if (this->has_solver_parameters()) {
2455  total_size += 1 +
2456  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2457  *solver_parameters_);
2458  }
2459 
2460  // bool reduce_vehicle_cost_model = 2;
2461  if (this->reduce_vehicle_cost_model() != 0) {
2462  total_size += 1 + 1;
2463  }
2464 
2465  // int32 max_callback_cache_size = 3;
2466  if (this->max_callback_cache_size() != 0) {
2467  total_size += 1 +
2468  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2469  this->_internal_max_callback_cache_size());
2470  }
2471 
2472  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2473  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2474  _internal_metadata_, total_size, &_cached_size_);
2475  }
2476  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2477  SetCachedSize(cached_size);
2478  return total_size;
2479 }
2480 
2481 void RoutingModelParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2482 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.RoutingModelParameters)
2483  GOOGLE_DCHECK_NE(&from, this);
2484  const RoutingModelParameters* source =
2485  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutingModelParameters>(
2486  &from);
2487  if (source == nullptr) {
2488  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.RoutingModelParameters)
2489  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2490  } else {
2491  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.RoutingModelParameters)
2492  MergeFrom(*source);
2493  }
2494 }
2495 
2496 void RoutingModelParameters::MergeFrom(const RoutingModelParameters& from) {
2497 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.RoutingModelParameters)
2498  GOOGLE_DCHECK_NE(&from, this);
2499  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2500  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2501  (void) cached_has_bits;
2502 
2503  if (from.has_solver_parameters()) {
2504  _internal_mutable_solver_parameters()->::operations_research::ConstraintSolverParameters::MergeFrom(from._internal_solver_parameters());
2505  }
2506  if (from.reduce_vehicle_cost_model() != 0) {
2507  _internal_set_reduce_vehicle_cost_model(from._internal_reduce_vehicle_cost_model());
2508  }
2509  if (from.max_callback_cache_size() != 0) {
2510  _internal_set_max_callback_cache_size(from._internal_max_callback_cache_size());
2511  }
2512 }
2513 
2514 void RoutingModelParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2515 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.RoutingModelParameters)
2516  if (&from == this) return;
2517  Clear();
2518  MergeFrom(from);
2519 }
2520 
2521 void RoutingModelParameters::CopyFrom(const RoutingModelParameters& from) {
2522 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.RoutingModelParameters)
2523  if (&from == this) return;
2524  Clear();
2525  MergeFrom(from);
2526 }
2527 
2528 bool RoutingModelParameters::IsInitialized() const {
2529  return true;
2530 }
2531 
2532 void RoutingModelParameters::InternalSwap(RoutingModelParameters* other) {
2533  using std::swap;
2534  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2535  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2536  PROTOBUF_FIELD_OFFSET(RoutingModelParameters, max_callback_cache_size_)
2537  + sizeof(RoutingModelParameters::max_callback_cache_size_)
2538  - PROTOBUF_FIELD_OFFSET(RoutingModelParameters, solver_parameters_)>(
2539  reinterpret_cast<char*>(&solver_parameters_),
2540  reinterpret_cast<char*>(&other->solver_parameters_));
2541 }
2542 
2543 ::PROTOBUF_NAMESPACE_ID::Metadata RoutingModelParameters::GetMetadata() const {
2544  return GetMetadataStatic();
2545 }
2546 
2547 
2548 // @@protoc_insertion_point(namespace_scope)
2549 } // namespace operations_research
2550 PROTOBUF_NAMESPACE_OPEN
2551 template<> PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators* Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(Arena* arena) {
2552  return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(arena);
2553 }
2554 template<> PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters* Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters >(Arena* arena) {
2555  return Arena::CreateMessageInternal< ::operations_research::RoutingSearchParameters >(arena);
2556 }
2557 template<> PROTOBUF_NOINLINE ::operations_research::RoutingModelParameters* Arena::CreateMaybeMessage< ::operations_research::RoutingModelParameters >(Arena* arena) {
2558  return Arena::CreateMessageInternal< ::operations_research::RoutingModelParameters >(arena);
2559 }
2560 PROTOBUF_NAMESPACE_CLOSE
2561 
2562 // @@protoc_insertion_point(global_scope)
2563 #include <google/protobuf/port_undef.inc>
dynamic_init_dummy_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static bool dynamic_init_dummy_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
Definition: routing_parameters.pb.cc:313
routing_parameters.pb.h
operations_research::_RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_
class operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_
Definition: routing_parameters.pb.h:70
operations_research::RoutingModelParametersDefaultTypeInternal
Definition: routing_parameters.pb.cc:29
operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators::_Internal
Definition: routing_parameters.pb.cc:343
file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
Definition: routing_parameters.pb.cc:81
operations_research::RoutingModelParametersDefaultTypeInternal::_instance
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< RoutingModelParameters > _instance
Definition: routing_parameters.pb.cc:31
operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal::_instance
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< RoutingSearchParameters_LocalSearchNeighborhoodOperators > _instance
Definition: routing_parameters.pb.cc:23
descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[4]
Definition: routing_parameters.pb.cc:293
scc_info_RoutingModelParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_RoutingModelParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
Definition: routing_parameters.pb.cc:45
value
int64 value
Definition: demon_profiler.cc:43
file_default_instances
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: routing_parameters.pb.cc:173
file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[1]
Definition: routing_parameters.pb.cc:80
PROTOBUF_SECTION_VARIABLE
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
operations_research
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
Definition: dense_doubly_linked_list.h:21
operations_research::RoutingSearchParameters::_Internal::local_search_operators
static const ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators & local_search_operators(const RoutingSearchParameters *msg)
Definition: routing_parameters.pb.cc:1310
operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators
operations_research::RoutingSearchParameters_SchedulingSolver_IsValid
bool RoutingSearchParameters_SchedulingSolver_IsValid(int value)
Definition: routing_parameters.pb.cc:319
schemas
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
Definition: optional_boolean.pb.cc:23
operations_research::_RoutingModelParameters_default_instance_
class operations_research::RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_
Definition: routing_parameters.pb.h:64
CreateMaybeMessage< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators >(Arena *arena)
Definition: routing_parameters.pb.cc:2551
operations_research::RoutingSearchParameters::_Internal::lns_time_limit
static const PROTOBUF_NAMESPACE_ID::Duration & lns_time_limit(const RoutingSearchParameters *msg)
Definition: routing_parameters.pb.cc:1318
file_level_metadata_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[3]
Definition: routing_parameters.pb.cc:79
scc_info_ConstraintSolverParameters_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto
PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_ConstraintSolverParameters_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto
Definition: solver_parameters.pb.cc:34
operations_research::_RoutingSearchParameters_default_instance_
class operations_research::RoutingSearchParametersDefaultTypeInternal _RoutingSearchParameters_default_instance_
Definition: routing_parameters.pb.h:67
operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal
Definition: routing_parameters.pb.cc:21
descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fenums_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fenums_2eproto
Definition: routing_enums.pb.cc:109
descriptor_table_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto
Definition: solver_parameters.pb.cc:120
time_limit
SharedTimeLimit * time_limit
Definition: cp_model_solver.cc:2025
operations_research::RoutingSearchParameters::_Internal
Definition: routing_parameters.pb.cc:1302
uint32
unsigned int uint32
Definition: integral_types.h:38
operations_research::LocalSearchMetaheuristic_Value
LocalSearchMetaheuristic_Value
Definition: routing_enums.pb.h:111
uint64
uint64_t uint64
Definition: integral_types.h:39
operations_research::ConstraintSolverParameters
operations_research::RoutingSearchParametersDefaultTypeInternal
Definition: routing_parameters.pb.cc:25
descriptor_table_ortools_2futil_2foptional_5fboolean_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2futil_2foptional_5fboolean_2eproto
Definition: optional_boolean.pb.cc:38
CreateMaybeMessage< ::operations_research::RoutingModelParameters >
PROTOBUF_NOINLINE ::operations_research::RoutingModelParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingModelParameters >(Arena *arena)
Definition: routing_parameters.pb.cc:2557
scc_info_RoutingSearchParameters_LocalSearchNeighborhoodOperators_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_RoutingSearchParameters_LocalSearchNeighborhoodOperators_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
Definition: routing_parameters.pb.cc:76
scc_info_Duration_google_2fprotobuf_2fduration_2eproto
PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fduration_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_Duration_google_2fprotobuf_2fduration_2eproto
InitDefaultsscc_info_RoutingSearchParameters_LocalSearchNeighborhoodOperators_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static void InitDefaultsscc_info_RoutingSearchParameters_LocalSearchNeighborhoodOperators_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto()
Definition: routing_parameters.pb.cc:65
descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
Definition: routing_parameters.pb.cc:305
CHK_
#define CHK_(x)
uint8
unsigned char uint8
Definition: integral_types.h:36
operations_research::RoutingSearchParameters
InitDefaultsscc_info_RoutingModelParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static void InitDefaultsscc_info_RoutingModelParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto()
Definition: routing_parameters.pb.cc:34
operations_research::RoutingSearchParameters_SchedulingSolver_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * RoutingSearchParameters_SchedulingSolver_descriptor()
Definition: routing_parameters.pb.cc:315
operations_research::RoutingModelParameters
operations_research::RoutingSearchParameters_SchedulingSolver
RoutingSearchParameters_SchedulingSolver
Definition: routing_parameters.pb.h:80
CreateMaybeMessage< ::operations_research::RoutingSearchParameters >
PROTOBUF_NOINLINE ::operations_research::RoutingSearchParameters * Arena::CreateMaybeMessage< ::operations_research::RoutingSearchParameters >(Arena *arena)
Definition: routing_parameters.pb.cc:2554
descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_once
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_once
Definition: routing_parameters.pb.cc:304
operations_research::RoutingModelParameters::_Internal
Definition: routing_parameters.pb.cc:2276
operations_research::RoutingSearchParametersDefaultTypeInternal::_instance
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< RoutingSearchParameters > _instance
Definition: routing_parameters.pb.cc:27
TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto::offsets
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: routing_parameters.pb.h:59
operations_research::FirstSolutionStrategy_Value
FirstSolutionStrategy_Value
Definition: routing_enums.pb.h:72
operations_research::RoutingModelParameters::_Internal::solver_parameters
static const ::operations_research::ConstraintSolverParameters & solver_parameters(const RoutingModelParameters *msg)
Definition: routing_parameters.pb.cc:2282
scc_info_RoutingSearchParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 2 > scc_info_RoutingSearchParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
Definition: routing_parameters.pb.cc:60
descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_sccs
::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_sccs[3]
Definition: routing_parameters.pb.cc:299
operations_research::OptionalBoolean
OptionalBoolean
Definition: optional_boolean.pb.h:60
InitDefaultsscc_info_RoutingSearchParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static void InitDefaultsscc_info_RoutingSearchParameters_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto()
Definition: routing_parameters.pb.cc:49
operations_research::RoutingSearchParameters::_Internal::time_limit
static const PROTOBUF_NAMESPACE_ID::Duration & time_limit(const RoutingSearchParameters *msg)
Definition: routing_parameters.pb.cc:1314