10#include "google/protobuf/io/coded_stream.h"
11#include "google/protobuf/generated_message_tctable_impl.h"
12#include "google/protobuf/extension_set.h"
13#include "google/protobuf/generated_message_util.h"
14#include "google/protobuf/wire_format_lite.h"
15#include "google/protobuf/descriptor.h"
16#include "google/protobuf/generated_message_reflection.h"
17#include "google/protobuf/reflection_ops.h"
18#include "google/protobuf/wire_format.h"
22#include "google/protobuf/port_def.inc"
23PROTOBUF_PRAGMA_INIT_SEG
26namespace _fl = ::google::protobuf::internal::field_layout;
29inline constexpr RoutingSearchParameters_LocalSearchNeighborhoodOperators::Impl_::Impl_(
30 ::_pbi::ConstantInitialized) noexcept
75#if defined(PROTOBUF_CUSTOM_VTABLE)
78 : ::google::protobuf::Message(),
80 _impl_(::_pbi::ConstantInitialized()) {
90PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
93inline constexpr RoutingSearchParameters_ImprovementSearchLimitParameters::Impl_::Impl_(
94 ::_pbi::ConstantInitialized) noexcept
96 improvement_rate_coefficient_{0},
97 improvement_rate_solutions_distance_{0} {}
101#if defined(PROTOBUF_CUSTOM_VTABLE)
104 : ::google::protobuf::Message(),
106 _impl_(::_pbi::ConstantInitialized()) {
116PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
119inline constexpr RoutingModelParameters::Impl_::Impl_(
120 ::_pbi::ConstantInitialized) noexcept
122 solver_parameters_{
nullptr},
123 reduce_vehicle_cost_model_{
false},
124 max_callback_cache_size_{0} {}
128#if defined(PROTOBUF_CUSTOM_VTABLE)
131 : ::google::protobuf::Message(),
133 _impl_(::_pbi::ConstantInitialized()) {
143PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
146inline constexpr RoutingSearchParameters::Impl_::Impl_(
147 ::_pbi::ConstantInitialized) noexcept
149 local_search_operators_{
nullptr},
150 time_limit_{
nullptr},
151 lns_time_limit_{
nullptr},
152 improvement_limit_parameters_{
nullptr},
153 global_cheapest_insertion_first_solution_parameters_{
nullptr},
156 guided_local_search_lambda_coefficient_{0},
157 optimization_step_{0},
158 solution_limit_{::int64_t{0}},
159 use_unfiltered_first_solution_strategy_{
false},
160 use_depth_first_search_{
false},
161 use_full_propagation_{
false},
163 number_of_solutions_to_collect_{0},
164 log_cost_scaling_factor_{0},
165 relocate_expensive_chain_num_arcs_to_consider_{0},
169 heuristic_expensive_chain_lns_num_arcs_to_consider_{0},
171 heuristic_close_nodes_lns_num_nodes_{0},
172 multi_armed_bandit_compound_operator_memory_coefficient_{0},
173 christofides_use_minimum_matching_{
false},
174 use_multi_armed_bandit_concatenate_operators_{
false},
175 report_intermediate_cp_sat_solutions_{
false},
177 local_search_metaheuristics_{},
178 _local_search_metaheuristics_cached_byte_size_{0},
180 &::google::protobuf::internal::fixed_address_empty_string,
181 ::_pbi::ConstantInitialized()),
182 sat_parameters_{
nullptr},
183 iterated_local_search_parameters_{
nullptr},
184 local_cheapest_insertion_parameters_{
nullptr},
185 local_cheapest_cost_insertion_parameters_{
nullptr},
186 savings_parameters_{
nullptr},
187 global_cheapest_insertion_ls_operator_parameters_{
nullptr},
189 fallback_to_cp_sat_size_threshold_{0},
190 multi_armed_bandit_compound_operator_exploration_coefficient_{0},
191 ls_operator_neighbors_ratio_{0},
192 ls_operator_min_neighbors_{0},
193 disable_scheduling_beware_this_may_degrade_performance_{
false},
194 guided_local_search_reset_penalties_on_new_best_solution_{
false},
195 use_iterated_local_search_{
false},
196 guided_local_search_penalize_with_vehicle_classes_{
false},
197 secondary_ls_time_limit_ratio_{0},
198 first_solution_optimization_period_{0},
199 use_guided_local_search_penalties_in_local_search_operators_{
false},
200 num_max_local_optima_before_metaheuristic_switch_{0},
201 max_swap_active_chain_size_{0} {}
205#if defined(PROTOBUF_CUSTOM_VTABLE)
208 : ::google::protobuf::Message(),
210 _impl_(::_pbi::ConstantInitialized()) {
220PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
223static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
225static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
434static const ::_pbi::MigrationSchema
449 "\n2ortools/constraint_solver/routing_para"
450 "meters.proto\022\023operations_research\032\036googl"
451 "e/protobuf/duration.proto\032-ortools/const"
452 "raint_solver/routing_enums.proto\032<ortool"
453 "s/constraint_solver/routing_heuristic_pa"
454 "rameters.proto\032+ortools/constraint_solve"
455 "r/routing_ils.proto\0321ortools/constraint_"
456 "solver/solver_parameters.proto\032 ortools/"
457 "sat/sat_parameters.proto\032#ortools/util/o"
458 "ptional_boolean.proto\"\3301\n\027RoutingSearchP"
459 "arameters\022Q\n\027first_solution_strategy\030\001 \001"
460 "(\01620.operations_research.FirstSolutionSt"
461 "rategy.Value\022.\n&use_unfiltered_first_sol"
462 "ution_strategy\030\002 \001(\010\022B\n\022savings_paramete"
463 "rs\030F \001(\0132&.operations_research.SavingsPa"
464 "rameters\022s\n3global_cheapest_insertion_fi"
465 "rst_solution_parameters\030G \001(\01326.operatio"
466 "ns_research.GlobalCheapestInsertionParam"
467 "eters\022p\n0global_cheapest_insertion_ls_op"
468 "erator_parameters\030H \001(\01326.operations_res"
469 "earch.GlobalCheapestInsertionParameters\022"
470 "b\n#local_cheapest_insertion_parameters\030D"
471 " \001(\01325.operations_research.LocalCheapest"
472 "InsertionParameters\022g\n(local_cheapest_co"
473 "st_insertion_parameters\030E \001(\01325.operatio"
474 "ns_research.LocalCheapestInsertionParame"
475 "ters\022)\n!christofides_use_minimum_matchin"
476 "g\030\036 \001(\010\022*\n\"first_solution_optimization_p"
477 "eriod\030; \001(\005\022m\n\026local_search_operators\030\003 "
478 "\001(\0132M.operations_research.RoutingSearchP"
479 "arameters.LocalSearchNeighborhoodOperato"
480 "rs\022#\n\033ls_operator_neighbors_ratio\0305 \001(\001\022"
481 "!\n\031ls_operator_min_neighbors\0306 \001(\005\0224\n,us"
482 "e_multi_armed_bandit_concatenate_operato"
483 "rs\030) \001(\010\022\?\n7multi_armed_bandit_compound_"
484 "operator_memory_coefficient\030* \001(\001\022D\n<mul"
485 "ti_armed_bandit_compound_operator_explor"
486 "ation_coefficient\030+ \001(\001\022\"\n\032max_swap_acti"
487 "ve_chain_size\030B \001(\005\0225\n-relocate_expensiv"
488 "e_chain_num_arcs_to_consider\030\024 \001(\005\022:\n2he"
489 "uristic_expensive_chain_lns_num_arcs_to_"
490 "consider\030 \001(\005\022+\n#heuristic_close_nodes_"
491 "lns_num_nodes\030# \001(\005\022W\n\032local_search_meta"
492 "heuristic\030\004 \001(\01623.operations_research.Lo"
493 "calSearchMetaheuristic.Value\022X\n\033local_se"
494 "arch_metaheuristics\030\? \003(\01623.operations_r"
495 "esearch.LocalSearchMetaheuristic.Value\0228"
496 "\n0num_max_local_optima_before_metaheuris"
497 "tic_switch\030@ \001(\005\022.\n&guided_local_search_"
498 "lambda_coefficient\030\005 \001(\001\022@\n8guided_local"
499 "_search_reset_penalties_on_new_best_solu"
500 "tion\0303 \001(\010\0229\n1guided_local_search_penali"
501 "ze_with_vehicle_classes\030= \001(\010\022C\n;use_gui"
502 "ded_local_search_penalties_in_local_sear"
503 "ch_operators\030> \001(\010\022\036\n\026use_depth_first_se"
504 "arch\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.operations_"
505 "research.OptionalBoolean\0228\n\nuse_cp_sat\030\033"
506 " \001(\0162$.operations_research.OptionalBoole"
507 "an\022D\n\026use_generalized_cp_sat\030/ \001(\0162$.ope"
508 "rations_research.OptionalBoolean\022>\n\016sat_"
509 "parameters\0300 \001(\0132&.operations_research.s"
510 "at.SatParameters\022,\n$report_intermediate_"
511 "cp_sat_solutions\0308 \001(\010\022)\n!fallback_to_cp"
512 "_sat_size_threshold\0304 \001(\005\022c\n\034continuous_"
513 "scheduling_solver\030! \001(\0162=.operations_res"
514 "earch.RoutingSearchParameters.Scheduling"
515 "Solver\022f\n\037mixed_integer_scheduling_solve"
516 "r\030\" \001(\0162=.operations_research.RoutingSea"
517 "rchParameters.SchedulingSolver\022C\n6disabl"
518 "e_scheduling_beware_this_may_degrade_per"
519 "formance\0302 \001(\010H\000\210\001\001\022\031\n\021optimization_step"
520 "\030\007 \001(\001\022&\n\036number_of_solutions_to_collect"
521 "\030\021 \001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n\ntime_l"
522 "imit\030\t \001(\0132\031.google.protobuf.Duration\0221\n"
523 "\016lns_time_limit\030\n \001(\0132\031.google.protobuf."
524 "Duration\022%\n\035secondary_ls_time_limit_rati"
525 "o\0309 \001(\001\022s\n\034improvement_limit_parameters\030"
526 "% \001(\0132M.operations_research.RoutingSearc"
527 "hParameters.ImprovementSearchLimitParame"
528 "ters\022\034\n\024use_full_propagation\030\013 \001(\010\022\022\n\nlo"
529 "g_search\030\r \001(\010\022\037\n\027log_cost_scaling_facto"
530 "r\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022\017\n\007log_"
531 "tag\030$ \001(\t\022!\n\031use_iterated_local_search\030:"
532 " \001(\010\022\\\n iterated_local_search_parameters"
533 "\030< \001(\01322.operations_research.IteratedLoc"
534 "alSearchParameters\032\223\027\n LocalSearchNeighb"
535 "orhoodOperators\022:\n\014use_relocate\030\001 \001(\0162$."
536 "operations_research.OptionalBoolean\022\?\n\021u"
537 "se_relocate_pair\030\002 \001(\0162$.operations_rese"
538 "arch.OptionalBoolean\022E\n\027use_light_reloca"
539 "te_pair\030\030 \001(\0162$.operations_research.Opti"
540 "onalBoolean\022D\n\026use_relocate_neighbors\030\003 "
541 "\001(\0162$.operations_research.OptionalBoolea"
542 "n\022B\n\024use_relocate_subtrip\030\031 \001(\0162$.operat"
543 "ions_research.OptionalBoolean\022:\n\014use_exc"
544 "hange\030\004 \001(\0162$.operations_research.Option"
545 "alBoolean\022\?\n\021use_exchange_pair\030\026 \001(\0162$.o"
546 "perations_research.OptionalBoolean\022B\n\024us"
547 "e_exchange_subtrip\030\032 \001(\0162$.operations_re"
548 "search.OptionalBoolean\0227\n\tuse_cross\030\005 \001("
549 "\0162$.operations_research.OptionalBoolean\022"
550 "@\n\022use_cross_exchange\030\006 \001(\0162$.operations"
551 "_research.OptionalBoolean\022J\n\034use_relocat"
552 "e_expensive_chain\030\027 \001(\0162$.operations_res"
553 "earch.OptionalBoolean\0229\n\013use_two_opt\030\007 \001"
554 "(\0162$.operations_research.OptionalBoolean"
555 "\0228\n\nuse_or_opt\030\010 \001(\0162$.operations_resear"
556 "ch.OptionalBoolean\022\?\n\021use_lin_kernighan\030"
557 "\t \001(\0162$.operations_research.OptionalBool"
558 "ean\0229\n\013use_tsp_opt\030\n \001(\0162$.operations_re"
559 "search.OptionalBoolean\022=\n\017use_make_activ"
560 "e\030\013 \001(\0162$.operations_research.OptionalBo"
561 "olean\022J\n\034use_relocate_and_make_active\030\025 "
562 "\001(\0162$.operations_research.OptionalBoolea"
563 "n\022J\n\034use_exchange_and_make_active\030% \001(\0162"
564 "$.operations_research.OptionalBoolean\022Z\n"
565 ",use_exchange_path_start_ends_and_make_a"
566 "ctive\030& \001(\0162$.operations_research.Option"
567 "alBoolean\022\?\n\021use_make_inactive\030\014 \001(\0162$.o"
568 "perations_research.OptionalBoolean\022E\n\027us"
569 "e_make_chain_inactive\030\r \001(\0162$.operations"
570 "_research.OptionalBoolean\022=\n\017use_swap_ac"
571 "tive\030\016 \001(\0162$.operations_research.Optiona"
572 "lBoolean\022C\n\025use_swap_active_chain\030# \001(\0162"
573 "$.operations_research.OptionalBoolean\022F\n"
574 "\030use_extended_swap_active\030\017 \001(\0162$.operat"
575 "ions_research.OptionalBoolean\022K\n\035use_sho"
576 "rtest_path_swap_active\030\" \001(\0162$.operation"
577 "s_research.OptionalBoolean\022G\n\031use_shorte"
578 "st_path_two_opt\030$ \001(\0162$.operations_resea"
579 "rch.OptionalBoolean\022G\n\031use_node_pair_swa"
580 "p_active\030\024 \001(\0162$.operations_research.Opt"
581 "ionalBoolean\022:\n\014use_path_lns\030\020 \001(\0162$.ope"
582 "rations_research.OptionalBoolean\022\?\n\021use_"
583 "full_path_lns\030\021 \001(\0162$.operations_researc"
584 "h.OptionalBoolean\0229\n\013use_tsp_lns\030\022 \001(\0162$"
585 ".operations_research.OptionalBoolean\022>\n\020"
586 "use_inactive_lns\030\023 \001(\0162$.operations_rese"
587 "arch.OptionalBoolean\022T\n&use_global_cheap"
588 "est_insertion_path_lns\030\033 \001(\0162$.operation"
589 "s_research.OptionalBoolean\022S\n%use_local_"
590 "cheapest_insertion_path_lns\030\034 \001(\0162$.oper"
591 "ations_research.OptionalBoolean\022l\n>use_r"
592 "elocate_path_global_cheapest_insertion_i"
593 "nsert_unperformed\030! \001(\0162$.operations_res"
594 "earch.OptionalBoolean\022_\n1use_global_chea"
595 "pest_insertion_expensive_chain_lns\030\035 \001(\016"
596 "2$.operations_research.OptionalBoolean\022^"
597 "\n0use_local_cheapest_insertion_expensive"
598 "_chain_lns\030\036 \001(\0162$.operations_research.O"
599 "ptionalBoolean\022[\n-use_global_cheapest_in"
600 "sertion_close_nodes_lns\030\037 \001(\0162$.operatio"
601 "ns_research.OptionalBoolean\022Z\n,use_local"
602 "_cheapest_insertion_close_nodes_lns\030 \001("
603 "\0162$.operations_research.OptionalBoolean\022"
604 "[\n-use_global_cheapest_insertion_visit_t"
605 "ypes_lns\030\' \001(\0162$.operations_research.Opt"
606 "ionalBoolean\022Z\n,use_local_cheapest_inser"
607 "tion_visit_types_lns\030( \001(\0162$.operations_"
608 "research.OptionalBoolean\032u\n ImprovementS"
609 "earchLimitParameters\022$\n\034improvement_rate"
610 "_coefficient\030& \001(\001\022+\n#improvement_rate_s"
611 "olutions_distance\030\' \001(\005\"T\n\020SchedulingSol"
612 "ver\022\024\n\020SCHEDULING_UNSET\020\000\022\023\n\017SCHEDULING_"
613 "GLOP\020\001\022\025\n\021SCHEDULING_CP_SAT\020\002B9\n7_disabl"
614 "e_scheduling_beware_this_may_degrade_per"
615 "formanceJ\004\010\016\020\017J\004\010\017\020\020J\004\010\020\020\021J\004\010\022\020\023J\004\010\023\020\024J\004"
616 "\010\025\020\026J\004\010\027\020\030J\004\010\037\020 J\004\010(\020)J\004\010,\020-J\004\010-\020.J\004\010.\020/"
617 "J\004\0101\0202J\004\0107\0208J\004\010A\020BJ\004\010C\020D\"\250\001\n\026RoutingMode"
618 "lParameters\022J\n\021solver_parameters\030\001 \001(\0132/"
619 ".operations_research.ConstraintSolverPar"
620 "ameters\022!\n\031reduce_vehicle_cost_model\030\002 \001"
621 "(\010\022\037\n\027max_callback_cache_size\030\003 \001(\005BI\n#c"
622 "om.google.ortools.constraintsolverP\001\252\002\037G"
623 "oogle.OrTools.ConstraintSolverb\006proto3"
625static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL
const
627 &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
640 descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto,
641 "ortools/constraint_solver/routing_parameters.proto",
661class RoutingSearchParameters_LocalSearchNeighborhoodOperators::_Internal {
664 decltype(::std::declval<RoutingSearchParameters_LocalSearchNeighborhoodOperators>()._impl_._has_bits_);
670#if defined(PROTOBUF_CUSTOM_VTABLE)
673 : ::google::protobuf::Message(arena) {
680#if defined(PROTOBUF_CUSTOM_VTABLE)
683 : ::google::protobuf::Message(arena),
686 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
687 from._internal_metadata_);
689PROTOBUF_NDEBUG_INLINE RoutingSearchParameters_LocalSearchNeighborhoodOperators::Impl_::Impl_(
690 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
691 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
692 : _cached_size_{0} {}
694inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
695 new (&
_impl_) Impl_(internal_visibility(), arena);
696 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
697 offsetof(Impl_, use_relocate_),
699 offsetof(Impl_, use_global_cheapest_insertion_visit_types_lns_) -
700 offsetof(Impl_, use_relocate_) +
701 sizeof(Impl_::use_global_cheapest_insertion_visit_types_lns_));
707inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor(
MessageLite& self) {
709 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
710 this_.CheckHasBitConsistency();
712 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
713 ABSL_DCHECK(this_.GetArena() ==
nullptr);
717inline void* PROTOBUF_NONNULL RoutingSearchParameters_LocalSearchNeighborhoodOperators::PlacementNew_(
718 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
719 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
722constexpr auto RoutingSearchParameters_LocalSearchNeighborhoodOperators::InternalNewImpl_() {
727 return ::google::protobuf::internal::ClassDataFull{
728 ::google::protobuf::internal::ClassData{
733 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl,
734 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters_LocalSearchNeighborhoodOperators>(),
735#if defined(PROTOBUF_CUSTOM_VTABLE)
736 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor,
743 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::kDescriptorMethods,
749PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
753PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
754RoutingSearchParameters_LocalSearchNeighborhoodOperators::GetClassData()
const {
759PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
760const ::_pbi::TcParseTable<5, 40, 0, 0, 7>
761RoutingSearchParameters_LocalSearchNeighborhoodOperators::_table_ = {
766 offsetof(
decltype(_table_), field_lookup_table),
768 offsetof(
decltype(_table_), field_entries),
771 offsetof(
decltype(_table_), field_names),
774 ::_pbi::TcParser::GenericFallback,
775 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
776 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>(),
779 {::_pbi::TcParser::MiniParse, {}},
841 {::_pbi::TcParser::FastV32S2,
845 {::_pbi::TcParser::FastV32S2,
849 {::_pbi::TcParser::FastV32S2,
853 {::_pbi::TcParser::FastV32S2,
857 {::_pbi::TcParser::FastV32S2,
861 {::_pbi::TcParser::FastV32S2,
865 {::_pbi::TcParser::FastV32S2,
869 {::_pbi::TcParser::FastV32S2,
873 {::_pbi::TcParser::FastV32S2,
877 {::_pbi::TcParser::FastV32S2,
881 {::_pbi::TcParser::FastV32S2,
885 {::_pbi::TcParser::FastV32S2,
889 {::_pbi::TcParser::FastV32S2,
893 {::_pbi::TcParser::FastV32S2,
897 {::_pbi::TcParser::FastV32S2,
901 {::_pbi::TcParser::FastV32S2,
996 ::google::protobuf::internal::TSanWrite(&
_impl_);
997 ::uint32_t cached_has_bits = 0;
999 (void) cached_has_bits;
1001 cached_has_bits =
_impl_._has_bits_[0];
1002 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1003 ::memset(&
_impl_.use_relocate_, 0,
static_cast<::
size_t>(
1004 reinterpret_cast<char*
>(&
_impl_.use_or_opt_) -
1005 reinterpret_cast<char*
>(&
_impl_.use_relocate_)) +
sizeof(
_impl_.use_or_opt_));
1007 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
1008 ::memset(&
_impl_.use_lin_kernighan_, 0,
static_cast<::
size_t>(
1009 reinterpret_cast<char*
>(&
_impl_.use_path_lns_) -
1010 reinterpret_cast<char*
>(&
_impl_.use_lin_kernighan_)) +
sizeof(
_impl_.use_path_lns_));
1012 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
1013 ::memset(&
_impl_.use_full_path_lns_, 0,
static_cast<::
size_t>(
1014 reinterpret_cast<char*
>(&
_impl_.use_light_relocate_pair_) -
1015 reinterpret_cast<char*
>(&
_impl_.use_full_path_lns_)) +
sizeof(
_impl_.use_light_relocate_pair_));
1017 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
1018 ::memset(&
_impl_.use_relocate_subtrip_, 0,
static_cast<::
size_t>(
1019 reinterpret_cast<char*
>(&
_impl_.use_local_cheapest_insertion_visit_types_lns_) -
1020 reinterpret_cast<char*
>(&
_impl_.use_relocate_subtrip_)) +
sizeof(
_impl_.use_local_cheapest_insertion_visit_types_lns_));
1022 cached_has_bits =
_impl_._has_bits_[1];
1023 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1024 ::memset(&
_impl_.use_local_cheapest_insertion_close_nodes_lns_, 0,
static_cast<::
size_t>(
1025 reinterpret_cast<char*
>(&
_impl_.use_global_cheapest_insertion_visit_types_lns_) -
1026 reinterpret_cast<char*
>(&
_impl_.use_local_cheapest_insertion_close_nodes_lns_)) +
sizeof(
_impl_.use_global_cheapest_insertion_visit_types_lns_));
1028 _impl_._has_bits_.Clear();
1029 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1032#if defined(PROTOBUF_CUSTOM_VTABLE)
1034 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
1035 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1039 ::uint8_t* PROTOBUF_NONNULL target,
1040 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
1043 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1044 this_.CheckHasBitConsistency();
1047 ::uint32_t cached_has_bits = 0;
1048 (void)cached_has_bits;
1050 cached_has_bits = this_.
_impl_._has_bits_[0];
1052 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1053 if (this_._internal_use_relocate() != 0) {
1054 target = stream->EnsureSpace(target);
1055 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1056 1, this_._internal_use_relocate(), target);
1061 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1062 if (this_._internal_use_relocate_pair() != 0) {
1063 target = stream->EnsureSpace(target);
1064 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1065 2, this_._internal_use_relocate_pair(), target);
1070 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1071 if (this_._internal_use_relocate_neighbors() != 0) {
1072 target = stream->EnsureSpace(target);
1073 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1074 3, this_._internal_use_relocate_neighbors(), target);
1079 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1080 if (this_._internal_use_exchange() != 0) {
1081 target = stream->EnsureSpace(target);
1082 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1083 4, this_._internal_use_exchange(), target);
1088 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1089 if (this_._internal_use_cross() != 0) {
1090 target = stream->EnsureSpace(target);
1091 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1092 5, this_._internal_use_cross(), target);
1097 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1098 if (this_._internal_use_cross_exchange() != 0) {
1099 target = stream->EnsureSpace(target);
1100 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1101 6, this_._internal_use_cross_exchange(), target);
1106 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1107 if (this_._internal_use_two_opt() != 0) {
1108 target = stream->EnsureSpace(target);
1109 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1110 7, this_._internal_use_two_opt(), target);
1115 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1116 if (this_._internal_use_or_opt() != 0) {
1117 target = stream->EnsureSpace(target);
1118 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1119 8, this_._internal_use_or_opt(), target);
1124 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
1125 if (this_._internal_use_lin_kernighan() != 0) {
1126 target = stream->EnsureSpace(target);
1127 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1128 9, this_._internal_use_lin_kernighan(), target);
1133 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1134 if (this_._internal_use_tsp_opt() != 0) {
1135 target = stream->EnsureSpace(target);
1136 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1137 10, this_._internal_use_tsp_opt(), target);
1142 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1143 if (this_._internal_use_make_active() != 0) {
1144 target = stream->EnsureSpace(target);
1145 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1146 11, this_._internal_use_make_active(), target);
1151 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1152 if (this_._internal_use_make_inactive() != 0) {
1153 target = stream->EnsureSpace(target);
1154 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1155 12, this_._internal_use_make_inactive(), target);
1160 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1161 if (this_._internal_use_make_chain_inactive() != 0) {
1162 target = stream->EnsureSpace(target);
1163 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1164 13, this_._internal_use_make_chain_inactive(), target);
1169 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1170 if (this_._internal_use_swap_active() != 0) {
1171 target = stream->EnsureSpace(target);
1172 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1173 14, this_._internal_use_swap_active(), target);
1178 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
1179 if (this_._internal_use_extended_swap_active() != 0) {
1180 target = stream->EnsureSpace(target);
1181 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1182 15, this_._internal_use_extended_swap_active(), target);
1187 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1188 if (this_._internal_use_path_lns() != 0) {
1189 target = stream->EnsureSpace(target);
1190 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1191 16, this_._internal_use_path_lns(), target);
1196 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1197 if (this_._internal_use_full_path_lns() != 0) {
1198 target = stream->EnsureSpace(target);
1199 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1200 17, this_._internal_use_full_path_lns(), target);
1205 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1206 if (this_._internal_use_tsp_lns() != 0) {
1207 target = stream->EnsureSpace(target);
1208 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1209 18, this_._internal_use_tsp_lns(), target);
1214 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1215 if (this_._internal_use_inactive_lns() != 0) {
1216 target = stream->EnsureSpace(target);
1217 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1218 19, this_._internal_use_inactive_lns(), target);
1223 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1224 if (this_._internal_use_node_pair_swap_active() != 0) {
1225 target = stream->EnsureSpace(target);
1226 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1227 20, this_._internal_use_node_pair_swap_active(), target);
1232 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1233 if (this_._internal_use_relocate_and_make_active() != 0) {
1234 target = stream->EnsureSpace(target);
1235 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1236 21, this_._internal_use_relocate_and_make_active(), target);
1241 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1242 if (this_._internal_use_exchange_pair() != 0) {
1243 target = stream->EnsureSpace(target);
1244 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1245 22, this_._internal_use_exchange_pair(), target);
1250 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1251 if (this_._internal_use_relocate_expensive_chain() != 0) {
1252 target = stream->EnsureSpace(target);
1253 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1254 23, this_._internal_use_relocate_expensive_chain(), target);
1259 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1260 if (this_._internal_use_light_relocate_pair() != 0) {
1261 target = stream->EnsureSpace(target);
1262 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1263 24, this_._internal_use_light_relocate_pair(), target);
1268 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1269 if (this_._internal_use_relocate_subtrip() != 0) {
1270 target = stream->EnsureSpace(target);
1271 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1272 25, this_._internal_use_relocate_subtrip(), target);
1277 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1278 if (this_._internal_use_exchange_subtrip() != 0) {
1279 target = stream->EnsureSpace(target);
1280 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1281 26, this_._internal_use_exchange_subtrip(), target);
1286 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1287 if (this_._internal_use_global_cheapest_insertion_path_lns() != 0) {
1288 target = stream->EnsureSpace(target);
1289 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1290 27, this_._internal_use_global_cheapest_insertion_path_lns(), target);
1295 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
1296 if (this_._internal_use_local_cheapest_insertion_path_lns() != 0) {
1297 target = stream->EnsureSpace(target);
1298 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1299 28, this_._internal_use_local_cheapest_insertion_path_lns(), target);
1304 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
1305 if (this_._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1306 target = stream->EnsureSpace(target);
1307 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1308 29, this_._internal_use_global_cheapest_insertion_expensive_chain_lns(), target);
1313 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
1314 if (this_._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1315 target = stream->EnsureSpace(target);
1316 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1317 30, this_._internal_use_local_cheapest_insertion_expensive_chain_lns(), target);
1322 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1323 if (this_._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1324 target = stream->EnsureSpace(target);
1325 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1326 31, this_._internal_use_global_cheapest_insertion_close_nodes_lns(), target);
1330 cached_has_bits = this_.
_impl_._has_bits_[1];
1332 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1333 if (this_._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1334 target = stream->EnsureSpace(target);
1335 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1336 32, this_._internal_use_local_cheapest_insertion_close_nodes_lns(), target);
1341 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1342 if (this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1343 target = stream->EnsureSpace(target);
1344 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1345 33, this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed(), target);
1350 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1351 if (this_._internal_use_shortest_path_swap_active() != 0) {
1352 target = stream->EnsureSpace(target);
1353 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1354 34, this_._internal_use_shortest_path_swap_active(), target);
1359 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1360 if (this_._internal_use_swap_active_chain() != 0) {
1361 target = stream->EnsureSpace(target);
1362 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1363 35, this_._internal_use_swap_active_chain(), target);
1368 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1369 if (this_._internal_use_shortest_path_two_opt() != 0) {
1370 target = stream->EnsureSpace(target);
1371 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1372 36, this_._internal_use_shortest_path_two_opt(), target);
1377 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1378 if (this_._internal_use_exchange_and_make_active() != 0) {
1379 target = stream->EnsureSpace(target);
1380 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1381 37, this_._internal_use_exchange_and_make_active(), target);
1386 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1387 if (this_._internal_use_exchange_path_start_ends_and_make_active() != 0) {
1388 target = stream->EnsureSpace(target);
1389 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1390 38, this_._internal_use_exchange_path_start_ends_and_make_active(), target);
1395 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1396 if (this_._internal_use_global_cheapest_insertion_visit_types_lns() != 0) {
1397 target = stream->EnsureSpace(target);
1398 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1399 39, this_._internal_use_global_cheapest_insertion_visit_types_lns(), target);
1403 cached_has_bits = this_.
_impl_._has_bits_[0];
1405 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
1406 if (this_._internal_use_local_cheapest_insertion_visit_types_lns() != 0) {
1407 target = stream->EnsureSpace(target);
1408 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1409 40, this_._internal_use_local_cheapest_insertion_visit_types_lns(), target);
1413 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1415 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1416 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1422#if defined(PROTOBUF_CUSTOM_VTABLE)
1430 ::size_t total_size = 0;
1432 ::uint32_t cached_has_bits = 0;
1434 (void)cached_has_bits;
1436 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1437 cached_has_bits = this_.
_impl_._has_bits_[0];
1438 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1440 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1441 if (this_._internal_use_relocate() != 0) {
1443 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate());
1447 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1448 if (this_._internal_use_relocate_pair() != 0) {
1450 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_pair());
1454 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1455 if (this_._internal_use_relocate_neighbors() != 0) {
1457 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_neighbors());
1461 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1462 if (this_._internal_use_exchange() != 0) {
1464 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange());
1468 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1469 if (this_._internal_use_cross() != 0) {
1471 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cross());
1475 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1476 if (this_._internal_use_cross_exchange() != 0) {
1478 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cross_exchange());
1482 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1483 if (this_._internal_use_two_opt() != 0) {
1485 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_two_opt());
1489 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1490 if (this_._internal_use_or_opt() != 0) {
1492 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_or_opt());
1496 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
1498 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
1499 if (this_._internal_use_lin_kernighan() != 0) {
1501 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_lin_kernighan());
1505 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1506 if (this_._internal_use_tsp_opt() != 0) {
1508 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_tsp_opt());
1512 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1513 if (this_._internal_use_make_active() != 0) {
1515 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_active());
1519 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1520 if (this_._internal_use_make_inactive() != 0) {
1522 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_inactive());
1526 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1527 if (this_._internal_use_make_chain_inactive() != 0) {
1529 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_chain_inactive());
1533 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1534 if (this_._internal_use_swap_active() != 0) {
1536 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_swap_active());
1540 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
1541 if (this_._internal_use_extended_swap_active() != 0) {
1543 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_extended_swap_active());
1547 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1548 if (this_._internal_use_path_lns() != 0) {
1550 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_path_lns());
1554 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
1556 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1557 if (this_._internal_use_full_path_lns() != 0) {
1559 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_full_path_lns());
1563 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1564 if (this_._internal_use_tsp_lns() != 0) {
1566 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_tsp_lns());
1570 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1571 if (this_._internal_use_inactive_lns() != 0) {
1573 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_inactive_lns());
1577 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1578 if (this_._internal_use_node_pair_swap_active() != 0) {
1580 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_node_pair_swap_active());
1584 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1585 if (this_._internal_use_relocate_and_make_active() != 0) {
1587 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_and_make_active());
1591 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1592 if (this_._internal_use_exchange_pair() != 0) {
1594 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_pair());
1598 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1599 if (this_._internal_use_relocate_expensive_chain() != 0) {
1601 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_expensive_chain());
1605 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1606 if (this_._internal_use_light_relocate_pair() != 0) {
1608 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_light_relocate_pair());
1612 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
1614 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1615 if (this_._internal_use_relocate_subtrip() != 0) {
1617 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_subtrip());
1621 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1622 if (this_._internal_use_exchange_subtrip() != 0) {
1624 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_subtrip());
1628 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1629 if (this_._internal_use_global_cheapest_insertion_path_lns() != 0) {
1631 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_path_lns());
1635 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
1636 if (this_._internal_use_local_cheapest_insertion_path_lns() != 0) {
1638 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_path_lns());
1642 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
1643 if (this_._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1645 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_expensive_chain_lns());
1649 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
1650 if (this_._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1652 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_expensive_chain_lns());
1656 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1657 if (this_._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1659 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_close_nodes_lns());
1663 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
1664 if (this_._internal_use_local_cheapest_insertion_visit_types_lns() != 0) {
1666 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_visit_types_lns());
1670 cached_has_bits = this_.
_impl_._has_bits_[1];
1671 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1673 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1674 if (this_._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1676 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_close_nodes_lns());
1680 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1681 if (this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1683 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1687 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1688 if (this_._internal_use_shortest_path_swap_active() != 0) {
1690 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_shortest_path_swap_active());
1694 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1695 if (this_._internal_use_swap_active_chain() != 0) {
1697 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_swap_active_chain());
1701 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1702 if (this_._internal_use_shortest_path_two_opt() != 0) {
1704 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_shortest_path_two_opt());
1708 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1709 if (this_._internal_use_exchange_and_make_active() != 0) {
1711 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_and_make_active());
1715 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1716 if (this_._internal_use_exchange_path_start_ends_and_make_active() != 0) {
1718 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_path_start_ends_and_make_active());
1722 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1723 if (this_._internal_use_global_cheapest_insertion_visit_types_lns() != 0) {
1725 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_visit_types_lns());
1729 return this_.MaybeComputeUnknownFieldsSize(total_size,
1730 &this_.
_impl_._cached_size_);
1733void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl(::google::protobuf::MessageLite& to_msg,
1734 const ::google::protobuf::MessageLite& from_msg) {
1738 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1739 from.CheckHasBitConsistency();
1742 ABSL_DCHECK_NE(&from, _this);
1743 ::uint32_t cached_has_bits = 0;
1744 (void)cached_has_bits;
1746 cached_has_bits = from.
_impl_._has_bits_[0];
1747 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1748 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1749 if (from._internal_use_relocate() != 0) {
1750 _this->_impl_.use_relocate_ = from.
_impl_.use_relocate_;
1753 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1754 if (from._internal_use_relocate_pair() != 0) {
1755 _this->_impl_.use_relocate_pair_ = from.
_impl_.use_relocate_pair_;
1758 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1759 if (from._internal_use_relocate_neighbors() != 0) {
1760 _this->_impl_.use_relocate_neighbors_ = from.
_impl_.use_relocate_neighbors_;
1763 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1764 if (from._internal_use_exchange() != 0) {
1765 _this->_impl_.use_exchange_ = from.
_impl_.use_exchange_;
1768 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1769 if (from._internal_use_cross() != 0) {
1770 _this->_impl_.use_cross_ = from.
_impl_.use_cross_;
1773 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1774 if (from._internal_use_cross_exchange() != 0) {
1775 _this->_impl_.use_cross_exchange_ = from.
_impl_.use_cross_exchange_;
1778 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1779 if (from._internal_use_two_opt() != 0) {
1780 _this->_impl_.use_two_opt_ = from.
_impl_.use_two_opt_;
1783 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1784 if (from._internal_use_or_opt() != 0) {
1785 _this->_impl_.use_or_opt_ = from.
_impl_.use_or_opt_;
1789 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
1790 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
1791 if (from._internal_use_lin_kernighan() != 0) {
1792 _this->_impl_.use_lin_kernighan_ = from.
_impl_.use_lin_kernighan_;
1795 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1796 if (from._internal_use_tsp_opt() != 0) {
1797 _this->_impl_.use_tsp_opt_ = from.
_impl_.use_tsp_opt_;
1800 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1801 if (from._internal_use_make_active() != 0) {
1802 _this->_impl_.use_make_active_ = from.
_impl_.use_make_active_;
1805 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1806 if (from._internal_use_make_inactive() != 0) {
1807 _this->_impl_.use_make_inactive_ = from.
_impl_.use_make_inactive_;
1810 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1811 if (from._internal_use_make_chain_inactive() != 0) {
1812 _this->_impl_.use_make_chain_inactive_ = from.
_impl_.use_make_chain_inactive_;
1815 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1816 if (from._internal_use_swap_active() != 0) {
1817 _this->_impl_.use_swap_active_ = from.
_impl_.use_swap_active_;
1820 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
1821 if (from._internal_use_extended_swap_active() != 0) {
1822 _this->_impl_.use_extended_swap_active_ = from.
_impl_.use_extended_swap_active_;
1825 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1826 if (from._internal_use_path_lns() != 0) {
1827 _this->_impl_.use_path_lns_ = from.
_impl_.use_path_lns_;
1831 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
1832 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1833 if (from._internal_use_full_path_lns() != 0) {
1834 _this->_impl_.use_full_path_lns_ = from.
_impl_.use_full_path_lns_;
1837 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1838 if (from._internal_use_tsp_lns() != 0) {
1839 _this->_impl_.use_tsp_lns_ = from.
_impl_.use_tsp_lns_;
1842 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1843 if (from._internal_use_inactive_lns() != 0) {
1844 _this->_impl_.use_inactive_lns_ = from.
_impl_.use_inactive_lns_;
1847 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1848 if (from._internal_use_node_pair_swap_active() != 0) {
1849 _this->_impl_.use_node_pair_swap_active_ = from.
_impl_.use_node_pair_swap_active_;
1852 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1853 if (from._internal_use_relocate_and_make_active() != 0) {
1854 _this->_impl_.use_relocate_and_make_active_ = from.
_impl_.use_relocate_and_make_active_;
1857 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1858 if (from._internal_use_exchange_pair() != 0) {
1859 _this->_impl_.use_exchange_pair_ = from.
_impl_.use_exchange_pair_;
1862 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1863 if (from._internal_use_relocate_expensive_chain() != 0) {
1864 _this->_impl_.use_relocate_expensive_chain_ = from.
_impl_.use_relocate_expensive_chain_;
1867 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1868 if (from._internal_use_light_relocate_pair() != 0) {
1869 _this->_impl_.use_light_relocate_pair_ = from.
_impl_.use_light_relocate_pair_;
1873 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
1874 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1875 if (from._internal_use_relocate_subtrip() != 0) {
1876 _this->_impl_.use_relocate_subtrip_ = from.
_impl_.use_relocate_subtrip_;
1879 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1880 if (from._internal_use_exchange_subtrip() != 0) {
1881 _this->_impl_.use_exchange_subtrip_ = from.
_impl_.use_exchange_subtrip_;
1884 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1885 if (from._internal_use_global_cheapest_insertion_path_lns() != 0) {
1886 _this->_impl_.use_global_cheapest_insertion_path_lns_ = from.
_impl_.use_global_cheapest_insertion_path_lns_;
1889 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
1890 if (from._internal_use_local_cheapest_insertion_path_lns() != 0) {
1891 _this->_impl_.use_local_cheapest_insertion_path_lns_ = from.
_impl_.use_local_cheapest_insertion_path_lns_;
1894 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
1895 if (from._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1896 _this->_impl_.use_global_cheapest_insertion_expensive_chain_lns_ = from.
_impl_.use_global_cheapest_insertion_expensive_chain_lns_;
1899 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
1900 if (from._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1901 _this->_impl_.use_local_cheapest_insertion_expensive_chain_lns_ = from.
_impl_.use_local_cheapest_insertion_expensive_chain_lns_;
1904 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1905 if (from._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1906 _this->_impl_.use_global_cheapest_insertion_close_nodes_lns_ = from.
_impl_.use_global_cheapest_insertion_close_nodes_lns_;
1909 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
1910 if (from._internal_use_local_cheapest_insertion_visit_types_lns() != 0) {
1911 _this->_impl_.use_local_cheapest_insertion_visit_types_lns_ = from.
_impl_.use_local_cheapest_insertion_visit_types_lns_;
1915 cached_has_bits = from.
_impl_._has_bits_[1];
1916 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1917 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1918 if (from._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1919 _this->_impl_.use_local_cheapest_insertion_close_nodes_lns_ = from.
_impl_.use_local_cheapest_insertion_close_nodes_lns_;
1922 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1923 if (from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1924 _this->_impl_.use_relocate_path_global_cheapest_insertion_insert_unperformed_ = from.
_impl_.use_relocate_path_global_cheapest_insertion_insert_unperformed_;
1927 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1928 if (from._internal_use_shortest_path_swap_active() != 0) {
1929 _this->_impl_.use_shortest_path_swap_active_ = from.
_impl_.use_shortest_path_swap_active_;
1932 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1933 if (from._internal_use_swap_active_chain() != 0) {
1934 _this->_impl_.use_swap_active_chain_ = from.
_impl_.use_swap_active_chain_;
1937 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1938 if (from._internal_use_shortest_path_two_opt() != 0) {
1939 _this->_impl_.use_shortest_path_two_opt_ = from.
_impl_.use_shortest_path_two_opt_;
1942 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1943 if (from._internal_use_exchange_and_make_active() != 0) {
1944 _this->_impl_.use_exchange_and_make_active_ = from.
_impl_.use_exchange_and_make_active_;
1947 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1948 if (from._internal_use_exchange_path_start_ends_and_make_active() != 0) {
1949 _this->_impl_.use_exchange_path_start_ends_and_make_active_ = from.
_impl_.use_exchange_path_start_ends_and_make_active_;
1952 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1953 if (from._internal_use_global_cheapest_insertion_visit_types_lns() != 0) {
1954 _this->_impl_.use_global_cheapest_insertion_visit_types_lns_ = from.
_impl_.use_global_cheapest_insertion_visit_types_lns_;
1958 _this->_impl_._has_bits_.Or(from.
_impl_._has_bits_);
1959 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1960 from._internal_metadata_);
1965 if (&from ==
this)
return;
1973 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1974 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1975 swap(
_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
1976 ::google::protobuf::internal::memswap<
1980 reinterpret_cast<char*
>(&
_impl_.use_relocate_),
1981 reinterpret_cast<char*
>(&other->_impl_.use_relocate_));
1985 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1992 decltype(::std::declval<RoutingSearchParameters_ImprovementSearchLimitParameters>()._impl_._has_bits_);
1998#if defined(PROTOBUF_CUSTOM_VTABLE)
2001 : ::google::protobuf::Message(arena) {
2008#if defined(PROTOBUF_CUSTOM_VTABLE)
2011 : ::google::protobuf::Message(arena),
2014 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2015 from._internal_metadata_);
2017PROTOBUF_NDEBUG_INLINE RoutingSearchParameters_ImprovementSearchLimitParameters::Impl_::Impl_(
2018 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2019 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2020 : _cached_size_{0} {}
2022inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2023 new (&
_impl_) Impl_(internal_visibility(), arena);
2024 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
2025 offsetof(Impl_, improvement_rate_coefficient_),
2027 offsetof(Impl_, improvement_rate_solutions_distance_) -
2028 offsetof(Impl_, improvement_rate_coefficient_) +
2029 sizeof(Impl_::improvement_rate_solutions_distance_));
2035inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor(
MessageLite& self) {
2037 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2038 this_.CheckHasBitConsistency();
2040 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2041 ABSL_DCHECK(this_.GetArena() ==
nullptr);
2045inline void* PROTOBUF_NONNULL RoutingSearchParameters_ImprovementSearchLimitParameters::PlacementNew_(
2046 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
2047 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2050constexpr auto RoutingSearchParameters_ImprovementSearchLimitParameters::InternalNewImpl_() {
2055 return ::google::protobuf::internal::ClassDataFull{
2056 ::google::protobuf::internal::ClassData{
2061 &RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl,
2062 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters_ImprovementSearchLimitParameters>(),
2063#if defined(PROTOBUF_CUSTOM_VTABLE)
2064 &RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor,
2071 &RoutingSearchParameters_ImprovementSearchLimitParameters::kDescriptorMethods,
2077PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2081PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2082RoutingSearchParameters_ImprovementSearchLimitParameters::GetClassData()
const {
2087PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2088const ::_pbi::TcParseTable<1, 2, 0, 0, 7>
2089RoutingSearchParameters_ImprovementSearchLimitParameters::_table_ = {
2094 offsetof(
decltype(_table_), field_lookup_table),
2096 offsetof(
decltype(_table_), field_entries),
2099 offsetof(
decltype(_table_), field_names),
2102 ::_pbi::TcParser::GenericFallback,
2103 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2104 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>(),
2108 {::_pbi::TcParser::FastF64S2,
2112 {::_pbi::TcParser::FastV32S2,
2131 ::google::protobuf::internal::TSanWrite(&
_impl_);
2132 ::uint32_t cached_has_bits = 0;
2134 (void) cached_has_bits;
2136 cached_has_bits =
_impl_._has_bits_[0];
2137 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
2138 ::memset(&
_impl_.improvement_rate_coefficient_, 0,
static_cast<::
size_t>(
2139 reinterpret_cast<char*
>(&
_impl_.improvement_rate_solutions_distance_) -
2140 reinterpret_cast<char*
>(&
_impl_.improvement_rate_coefficient_)) +
sizeof(
_impl_.improvement_rate_solutions_distance_));
2142 _impl_._has_bits_.Clear();
2143 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2146#if defined(PROTOBUF_CUSTOM_VTABLE)
2148 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2149 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2153 ::uint8_t* PROTOBUF_NONNULL target,
2154 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
2157 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2158 this_.CheckHasBitConsistency();
2161 ::uint32_t cached_has_bits = 0;
2162 (void)cached_has_bits;
2164 cached_has_bits = this_.
_impl_._has_bits_[0];
2166 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2167 if (::absl::bit_cast<::uint64_t>(this_._internal_improvement_rate_coefficient()) != 0) {
2168 target = stream->EnsureSpace(target);
2169 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2170 38, this_._internal_improvement_rate_coefficient(), target);
2175 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2176 if (this_._internal_improvement_rate_solutions_distance() != 0) {
2177 target = stream->EnsureSpace(target);
2178 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
2179 39, this_._internal_improvement_rate_solutions_distance(), target);
2183 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
2185 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
2186 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
2192#if defined(PROTOBUF_CUSTOM_VTABLE)
2200 ::size_t total_size = 0;
2202 ::uint32_t cached_has_bits = 0;
2204 (void)cached_has_bits;
2206 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
2207 cached_has_bits = this_.
_impl_._has_bits_[0];
2208 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
2210 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2211 if (::absl::bit_cast<::uint64_t>(this_._internal_improvement_rate_coefficient()) != 0) {
2216 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2217 if (this_._internal_improvement_rate_solutions_distance() != 0) {
2218 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
2219 this_._internal_improvement_rate_solutions_distance());
2223 return this_.MaybeComputeUnknownFieldsSize(total_size,
2224 &this_.
_impl_._cached_size_);
2227void RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,
2228 const ::google::protobuf::MessageLite& from_msg) {
2232 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2233 from.CheckHasBitConsistency();
2236 ABSL_DCHECK_NE(&from, _this);
2237 ::uint32_t cached_has_bits = 0;
2238 (void)cached_has_bits;
2240 cached_has_bits = from.
_impl_._has_bits_[0];
2241 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
2242 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2243 if (::absl::bit_cast<::uint64_t>(from._internal_improvement_rate_coefficient()) != 0) {
2244 _this->_impl_.improvement_rate_coefficient_ = from.
_impl_.improvement_rate_coefficient_;
2247 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2248 if (from._internal_improvement_rate_solutions_distance() != 0) {
2249 _this->_impl_.improvement_rate_solutions_distance_ = from.
_impl_.improvement_rate_solutions_distance_;
2253 _this->_impl_._has_bits_[0] |= cached_has_bits;
2254 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2255 from._internal_metadata_);
2260 if (&from ==
this)
return;
2268 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2269 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
2270 ::google::protobuf::internal::memswap<
2274 reinterpret_cast<char*
>(&
_impl_.improvement_rate_coefficient_),
2275 reinterpret_cast<char*
>(&other->_impl_.improvement_rate_coefficient_));
2279 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
2286 decltype(::std::declval<RoutingSearchParameters>()._impl_._has_bits_);
2292 ::google::protobuf::internal::TSanWrite(&
_impl_);
2293 if (
_impl_.savings_parameters_ !=
nullptr)
_impl_.savings_parameters_->Clear();
2298 ::google::protobuf::internal::TSanWrite(&
_impl_);
2299 if (
_impl_.global_cheapest_insertion_first_solution_parameters_ !=
nullptr)
_impl_.global_cheapest_insertion_first_solution_parameters_->Clear();
2304 ::google::protobuf::internal::TSanWrite(&
_impl_);
2305 if (
_impl_.global_cheapest_insertion_ls_operator_parameters_ !=
nullptr)
_impl_.global_cheapest_insertion_ls_operator_parameters_->Clear();
2310 ::google::protobuf::internal::TSanWrite(&
_impl_);
2311 if (
_impl_.local_cheapest_insertion_parameters_ !=
nullptr)
_impl_.local_cheapest_insertion_parameters_->Clear();
2316 ::google::protobuf::internal::TSanWrite(&
_impl_);
2317 if (
_impl_.local_cheapest_cost_insertion_parameters_ !=
nullptr)
_impl_.local_cheapest_cost_insertion_parameters_->Clear();
2322 ::google::protobuf::internal::TSanWrite(&
_impl_);
2323 if (
_impl_.sat_parameters_ !=
nullptr)
_impl_.sat_parameters_->Clear();
2328 ::google::protobuf::internal::TSanWrite(&
_impl_);
2329 if (
_impl_.time_limit_ !=
nullptr)
_impl_.time_limit_->Clear();
2334 ::google::protobuf::internal::TSanWrite(&
_impl_);
2335 if (
_impl_.lns_time_limit_ !=
nullptr)
_impl_.lns_time_limit_->Clear();
2340 ::google::protobuf::internal::TSanWrite(&
_impl_);
2341 if (
_impl_.iterated_local_search_parameters_ !=
nullptr)
_impl_.iterated_local_search_parameters_->Clear();
2346#if defined(PROTOBUF_CUSTOM_VTABLE)
2349 : ::google::protobuf::Message(arena) {
2354PROTOBUF_NDEBUG_INLINE RoutingSearchParameters::Impl_::Impl_(
2355 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2356 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
2357 [[maybe_unused]] const ::operations_research::RoutingSearchParameters& from_msg)
2358 : _has_bits_{from._has_bits_},
2360 local_search_metaheuristics_{visibility, arena, from.local_search_metaheuristics_},
2361 _local_search_metaheuristics_cached_byte_size_{0},
2362 log_tag_(arena, from.log_tag_) {}
2365 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
2367#if defined(PROTOBUF_CUSTOM_VTABLE)
2370 : ::google::protobuf::Message(arena) {
2374 _internal_metadata_.
MergeFrom<::google::protobuf::UnknownFieldSet>(
2375 from._internal_metadata_);
2376 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
2377 ::uint32_t cached_has_bits = _impl_._has_bits_[0];
2378 _impl_.local_search_operators_ = (CheckHasBit(cached_has_bits, 0x00000001U))
2379 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_search_operators_)
2381 _impl_.time_limit_ = (CheckHasBit(cached_has_bits, 0x00000002U))
2382 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.time_limit_)
2384 _impl_.lns_time_limit_ = (CheckHasBit(cached_has_bits, 0x00000004U))
2385 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lns_time_limit_)
2387 _impl_.improvement_limit_parameters_ = (CheckHasBit(cached_has_bits, 0x00000008U))
2388 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.improvement_limit_parameters_)
2390 _impl_.global_cheapest_insertion_first_solution_parameters_ = (CheckHasBit(cached_has_bits, 0x00000010U))
2391 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.global_cheapest_insertion_first_solution_parameters_)
2393 ::memcpy(
reinterpret_cast<char*
>(&_impl_) +
2394 offsetof(Impl_, first_solution_strategy_),
2395 reinterpret_cast<const char*
>(&from._impl_) +
2396 offsetof(Impl_, first_solution_strategy_),
2397 offsetof(Impl_, use_generalized_cp_sat_) -
2398 offsetof(Impl_, first_solution_strategy_) +
2399 sizeof(Impl_::use_generalized_cp_sat_));
2400 _impl_.sat_parameters_ = (CheckHasBit(cached_has_bits, 0x40000000U))
2401 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sat_parameters_)
2403 _impl_.iterated_local_search_parameters_ = (CheckHasBit(cached_has_bits, 0x80000000U))
2404 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.iterated_local_search_parameters_)
2406 cached_has_bits = _impl_._has_bits_[1];
2407 _impl_.local_cheapest_insertion_parameters_ = (CheckHasBit(cached_has_bits, 0x00000001U))
2408 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_cheapest_insertion_parameters_)
2410 _impl_.local_cheapest_cost_insertion_parameters_ = (CheckHasBit(cached_has_bits, 0x00000002U))
2411 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_cheapest_cost_insertion_parameters_)
2413 _impl_.savings_parameters_ = (CheckHasBit(cached_has_bits, 0x00000004U))
2414 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.savings_parameters_)
2416 _impl_.global_cheapest_insertion_ls_operator_parameters_ = (CheckHasBit(cached_has_bits, 0x00000008U))
2417 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.global_cheapest_insertion_ls_operator_parameters_)
2419 ::memcpy(
reinterpret_cast<char*
>(&_impl_) +
2420 offsetof(Impl_, continuous_scheduling_solver_),
2421 reinterpret_cast<const char*
>(&from._impl_) +
2422 offsetof(Impl_, continuous_scheduling_solver_),
2423 offsetof(Impl_, max_swap_active_chain_size_) -
2424 offsetof(Impl_, continuous_scheduling_solver_) +
2425 sizeof(Impl_::max_swap_active_chain_size_));
2429PROTOBUF_NDEBUG_INLINE RoutingSearchParameters::Impl_::Impl_(
2430 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2431 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2433 local_search_metaheuristics_{visibility, arena},
2434 _local_search_metaheuristics_cached_byte_size_{0},
2437inline void RoutingSearchParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2438 new (&
_impl_) Impl_(internal_visibility(), arena);
2439 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
2440 offsetof(Impl_, local_search_operators_),
2442 offsetof(Impl_, use_generalized_cp_sat_) -
2443 offsetof(Impl_, local_search_operators_) +
2444 sizeof(Impl_::use_generalized_cp_sat_));
2445 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
2446 offsetof(Impl_, sat_parameters_),
2448 offsetof(Impl_, max_swap_active_chain_size_) -
2449 offsetof(Impl_, sat_parameters_) +
2450 sizeof(Impl_::max_swap_active_chain_size_));
2456inline void RoutingSearchParameters::SharedDtor(MessageLite& self) {
2458 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2459 this_.CheckHasBitConsistency();
2461 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2462 ABSL_DCHECK(this_.GetArena() ==
nullptr);
2463 delete this_.
_impl_.local_search_operators_;
2464 delete this_.
_impl_.time_limit_;
2465 delete this_.
_impl_.lns_time_limit_;
2466 delete this_.
_impl_.improvement_limit_parameters_;
2467 delete this_.
_impl_.global_cheapest_insertion_first_solution_parameters_;
2468 this_.
_impl_.log_tag_.Destroy();
2469 delete this_.
_impl_.sat_parameters_;
2470 delete this_.
_impl_.iterated_local_search_parameters_;
2471 delete this_.
_impl_.local_cheapest_insertion_parameters_;
2472 delete this_.
_impl_.local_cheapest_cost_insertion_parameters_;
2473 delete this_.
_impl_.savings_parameters_;
2474 delete this_.
_impl_.global_cheapest_insertion_ls_operator_parameters_;
2478inline void* PROTOBUF_NONNULL RoutingSearchParameters::PlacementNew_(
2479 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
2480 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2483constexpr auto RoutingSearchParameters::InternalNewImpl_() {
2484 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
2487 InternalGetArenaOffset(
2488 ::google::protobuf::Message::internal_visibility()),
2490 if (arena_bits.has_value()) {
2491 return ::google::protobuf::internal::MessageCreator::CopyInit(
2492 sizeof(RoutingSearchParameters), alignof(RoutingSearchParameters), *arena_bits);
2494 return ::google::protobuf::internal::MessageCreator(&RoutingSearchParameters::PlacementNew_,
2495 sizeof(RoutingSearchParameters),
2496 alignof(RoutingSearchParameters));
2500 return ::google::protobuf::internal::ClassDataFull{
2501 ::google::protobuf::internal::ClassData{
2506 &RoutingSearchParameters::MergeImpl,
2507 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters>(),
2508#if defined(PROTOBUF_CUSTOM_VTABLE)
2509 &RoutingSearchParameters::SharedDtor,
2516 &RoutingSearchParameters::kDescriptorMethods,
2522PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2526PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2527RoutingSearchParameters::GetClassData()
const {
2532PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2533const ::_pbi::TcParseTable<5, 50, 11, 107, 11>
2534RoutingSearchParameters::_table_ = {
2539 offsetof(
decltype(_table_), field_lookup_table),
2541 offsetof(
decltype(_table_), field_entries),
2544 offsetof(
decltype(_table_), aux_entries),
2547 ::_pbi::TcParser::GenericFallback,
2548 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2549 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters>(),
2552 {::_pbi::TcParser::MiniParse, {}},
2562 {::_pbi::TcParser::FastMtS1,
2570 {::_pbi::TcParser::FastF64S1,
2578 {::_pbi::TcParser::FastF64S1,
2586 {::_pbi::TcParser::FastMtS1,
2590 {::_pbi::TcParser::FastMtS1,
2597 {::_pbi::TcParser::MiniParse, {}},
2602 {::_pbi::TcParser::MiniParse, {}},
2603 {::_pbi::TcParser::MiniParse, {}},
2605 {::_pbi::TcParser::FastV32S2,
2609 {::_pbi::TcParser::FastV32S2,
2613 {::_pbi::TcParser::FastV32S2,
2617 {::_pbi::TcParser::FastV32S2,
2621 {::_pbi::TcParser::FastV32S2,
2625 {::_pbi::TcParser::FastMtS2,
2629 {::_pbi::TcParser::FastF64S2,
2633 {::_pbi::TcParser::FastMtS2,
2637 {::_pbi::TcParser::FastV8S2,
2641 {::_pbi::TcParser::FastV8S2,
2645 {::_pbi::TcParser::FastF64S2,
2649 {::_pbi::TcParser::FastV32S2,
2653 {::_pbi::TcParser::FastV32S2,
2657 {::_pbi::TcParser::FastF64S2,
2661 {::_pbi::TcParser::FastV8S2,
2665 {::_pbi::TcParser::FastV32S2,
2777 {::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>()},
2778 {::_pbi::TcParser::GetTable<::google::protobuf::Duration>()},
2779 {::_pbi::TcParser::GetTable<::google::protobuf::Duration>()},
2780 {::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>()},
2781 {::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>()},
2782 {::_pbi::TcParser::GetTable<::operations_research::IteratedLocalSearchParameters>()},
2783 {::_pbi::TcParser::GetTable<::operations_research::LocalCheapestInsertionParameters>()},
2784 {::_pbi::TcParser::GetTable<::operations_research::LocalCheapestInsertionParameters>()},
2785 {::_pbi::TcParser::GetTable<::operations_research::SavingsParameters>()},
2786 {::_pbi::TcParser::GetTable<::operations_research::GlobalCheapestInsertionParameters>()},
2787 {::_pbi::TcParser::GetTable<::operations_research::GlobalCheapestInsertionParameters>()},
2790 "\53\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
2791 "operations_research.RoutingSearchParameters"
2797 ::google::protobuf::internal::TSanWrite(&
_impl_);
2798 ::uint32_t cached_has_bits = 0;
2800 (void) cached_has_bits;
2802 cached_has_bits =
_impl_._has_bits_[0];
2803 if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
2804 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2805 ABSL_DCHECK(
_impl_.local_search_operators_ !=
nullptr);
2806 _impl_.local_search_operators_->Clear();
2808 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2809 ABSL_DCHECK(
_impl_.time_limit_ !=
nullptr);
2810 _impl_.time_limit_->Clear();
2812 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2813 ABSL_DCHECK(
_impl_.lns_time_limit_ !=
nullptr);
2814 _impl_.lns_time_limit_->Clear();
2816 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
2817 ABSL_DCHECK(
_impl_.improvement_limit_parameters_ !=
nullptr);
2818 _impl_.improvement_limit_parameters_->Clear();
2820 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
2821 ABSL_DCHECK(
_impl_.global_cheapest_insertion_first_solution_parameters_ !=
nullptr);
2822 _impl_.global_cheapest_insertion_first_solution_parameters_->Clear();
2825 if (BatchCheckHasBit(cached_has_bits, 0x000000e0U)) {
2826 ::memset(&
_impl_.first_solution_strategy_, 0,
static_cast<::
size_t>(
2827 reinterpret_cast<char*
>(&
_impl_.guided_local_search_lambda_coefficient_) -
2828 reinterpret_cast<char*
>(&
_impl_.first_solution_strategy_)) +
sizeof(
_impl_.guided_local_search_lambda_coefficient_));
2830 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2831 ::memset(&
_impl_.optimization_step_, 0,
static_cast<::
size_t>(
2832 reinterpret_cast<char*
>(&
_impl_.log_cost_scaling_factor_) -
2833 reinterpret_cast<char*
>(&
_impl_.optimization_step_)) +
sizeof(
_impl_.log_cost_scaling_factor_));
2835 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2836 ::memset(&
_impl_.relocate_expensive_chain_num_arcs_to_consider_, 0,
static_cast<::
size_t>(
2837 reinterpret_cast<char*
>(&
_impl_.multi_armed_bandit_compound_operator_memory_coefficient_) -
2838 reinterpret_cast<char*
>(&
_impl_.relocate_expensive_chain_num_arcs_to_consider_)) +
sizeof(
_impl_.multi_armed_bandit_compound_operator_memory_coefficient_));
2840 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
2841 ::memset(&
_impl_.christofides_use_minimum_matching_, 0,
static_cast<::
size_t>(
2842 reinterpret_cast<char*
>(&
_impl_.use_generalized_cp_sat_) -
2843 reinterpret_cast<char*
>(&
_impl_.christofides_use_minimum_matching_)) +
sizeof(
_impl_.use_generalized_cp_sat_));
2844 if (CheckHasBitForRepeated(cached_has_bits, 0x10000000U)) {
2845 _impl_.local_search_metaheuristics_.Clear();
2847 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
2848 _impl_.log_tag_.ClearNonDefaultToEmpty();
2850 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
2851 ABSL_DCHECK(
_impl_.sat_parameters_ !=
nullptr);
2852 _impl_.sat_parameters_->Clear();
2854 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
2855 ABSL_DCHECK(
_impl_.iterated_local_search_parameters_ !=
nullptr);
2856 _impl_.iterated_local_search_parameters_->Clear();
2859 cached_has_bits =
_impl_._has_bits_[1];
2860 if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
2861 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2862 ABSL_DCHECK(
_impl_.local_cheapest_insertion_parameters_ !=
nullptr);
2863 _impl_.local_cheapest_insertion_parameters_->Clear();
2865 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2866 ABSL_DCHECK(
_impl_.local_cheapest_cost_insertion_parameters_ !=
nullptr);
2867 _impl_.local_cheapest_cost_insertion_parameters_->Clear();
2869 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2870 ABSL_DCHECK(
_impl_.savings_parameters_ !=
nullptr);
2871 _impl_.savings_parameters_->Clear();
2873 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
2874 ABSL_DCHECK(
_impl_.global_cheapest_insertion_ls_operator_parameters_ !=
nullptr);
2875 _impl_.global_cheapest_insertion_ls_operator_parameters_->Clear();
2878 if (BatchCheckHasBit(cached_has_bits, 0x000000f0U)) {
2879 ::memset(&
_impl_.continuous_scheduling_solver_, 0,
static_cast<::
size_t>(
2880 reinterpret_cast<char*
>(&
_impl_.ls_operator_neighbors_ratio_) -
2881 reinterpret_cast<char*
>(&
_impl_.continuous_scheduling_solver_)) +
sizeof(
_impl_.ls_operator_neighbors_ratio_));
2883 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2884 ::memset(&
_impl_.ls_operator_min_neighbors_, 0,
static_cast<::
size_t>(
2885 reinterpret_cast<char*
>(&
_impl_.use_guided_local_search_penalties_in_local_search_operators_) -
2886 reinterpret_cast<char*
>(&
_impl_.ls_operator_min_neighbors_)) +
sizeof(
_impl_.use_guided_local_search_penalties_in_local_search_operators_));
2888 if (BatchCheckHasBit(cached_has_bits, 0x00030000U)) {
2889 ::memset(&
_impl_.num_max_local_optima_before_metaheuristic_switch_, 0,
static_cast<::
size_t>(
2890 reinterpret_cast<char*
>(&
_impl_.max_swap_active_chain_size_) -
2891 reinterpret_cast<char*
>(&
_impl_.num_max_local_optima_before_metaheuristic_switch_)) +
sizeof(
_impl_.max_swap_active_chain_size_));
2893 _impl_._has_bits_.Clear();
2894 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2897#if defined(PROTOBUF_CUSTOM_VTABLE)
2899 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2900 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2904 ::uint8_t* PROTOBUF_NONNULL target,
2905 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
2908 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2909 this_.CheckHasBitConsistency();
2912 ::uint32_t cached_has_bits = 0;
2913 (void)cached_has_bits;
2915 cached_has_bits = this_.
_impl_._has_bits_[0];
2917 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
2918 if (this_._internal_first_solution_strategy() != 0) {
2919 target = stream->EnsureSpace(target);
2920 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2921 1, this_._internal_first_solution_strategy(), target);
2926 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
2927 if (this_._internal_use_unfiltered_first_solution_strategy() != 0) {
2928 target = stream->EnsureSpace(target);
2929 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2930 2, this_._internal_use_unfiltered_first_solution_strategy(), target);
2935 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2936 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2942 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
2943 if (this_._internal_local_search_metaheuristic() != 0) {
2944 target = stream->EnsureSpace(target);
2945 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2946 4, this_._internal_local_search_metaheuristic(), target);
2951 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
2952 if (::absl::bit_cast<::uint64_t>(this_._internal_guided_local_search_lambda_coefficient()) != 0) {
2953 target = stream->EnsureSpace(target);
2954 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2955 5, this_._internal_guided_local_search_lambda_coefficient(), target);
2960 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
2961 if (this_._internal_use_depth_first_search() != 0) {
2962 target = stream->EnsureSpace(target);
2963 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2964 6, this_._internal_use_depth_first_search(), target);
2969 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
2970 if (::absl::bit_cast<::uint64_t>(this_._internal_optimization_step()) != 0) {
2971 target = stream->EnsureSpace(target);
2972 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2973 7, this_._internal_optimization_step(), target);
2978 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
2979 if (this_._internal_solution_limit() != 0) {
2981 ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<8>(
2982 stream, this_._internal_solution_limit(), target);
2987 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2988 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2989 9, *this_.
_impl_.time_limit_, this_.
_impl_.time_limit_->GetCachedSize(), target,
2994 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2995 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2996 10, *this_.
_impl_.lns_time_limit_, this_.
_impl_.lns_time_limit_->GetCachedSize(), target,
3001 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3002 if (this_._internal_use_full_propagation() != 0) {
3003 target = stream->EnsureSpace(target);
3004 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3005 11, this_._internal_use_full_propagation(), target);
3010 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3011 if (this_._internal_log_search() != 0) {
3012 target = stream->EnsureSpace(target);
3013 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3014 13, this_._internal_log_search(), target);
3019 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3020 if (this_._internal_number_of_solutions_to_collect() != 0) {
3021 target = stream->EnsureSpace(target);
3022 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3023 17, this_._internal_number_of_solutions_to_collect(), target);
3028 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3029 if (this_._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
3030 target = stream->EnsureSpace(target);
3031 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3032 20, this_._internal_relocate_expensive_chain_num_arcs_to_consider(), target);
3037 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3038 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_scaling_factor()) != 0) {
3039 target = stream->EnsureSpace(target);
3040 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3041 22, this_._internal_log_cost_scaling_factor(), target);
3046 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3047 if (this_._internal_use_cp_sat() != 0) {
3048 target = stream->EnsureSpace(target);
3049 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3050 27, this_._internal_use_cp_sat(), target);
3055 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3056 if (this_._internal_use_cp() != 0) {
3057 target = stream->EnsureSpace(target);
3058 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3059 28, this_._internal_use_cp(), target);
3064 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3065 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_offset()) != 0) {
3066 target = stream->EnsureSpace(target);
3067 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3068 29, this_._internal_log_cost_offset(), target);
3073 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3074 if (this_._internal_christofides_use_minimum_matching() != 0) {
3075 target = stream->EnsureSpace(target);
3076 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3077 30, this_._internal_christofides_use_minimum_matching(), target);
3082 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3083 if (this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
3084 target = stream->EnsureSpace(target);
3085 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3086 32, this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);
3090 cached_has_bits = this_.
_impl_._has_bits_[1];
3092 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3093 if (this_._internal_continuous_scheduling_solver() != 0) {
3094 target = stream->EnsureSpace(target);
3095 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3096 33, this_._internal_continuous_scheduling_solver(), target);
3100 cached_has_bits = this_.
_impl_._has_bits_[0];
3102 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3103 if (this_._internal_mixed_integer_scheduling_solver() != 0) {
3104 target = stream->EnsureSpace(target);
3105 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3106 34, this_._internal_mixed_integer_scheduling_solver(), target);
3111 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3112 if (this_._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
3113 target = stream->EnsureSpace(target);
3114 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3115 35, this_._internal_heuristic_close_nodes_lns_num_nodes(), target);
3120 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
3121 if (!this_._internal_log_tag().empty()) {
3122 const ::std::string& _s = this_._internal_log_tag();
3123 ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
3124 _s.data(),
static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE,
"operations_research.RoutingSearchParameters.log_tag");
3125 target = stream->WriteStringMaybeAliased(36, _s, target);
3130 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3131 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3137 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3138 if (this_._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
3139 target = stream->EnsureSpace(target);
3140 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3141 41, this_._internal_use_multi_armed_bandit_concatenate_operators(), target);
3146 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3147 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {
3148 target = stream->EnsureSpace(target);
3149 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3150 42, this_._internal_multi_armed_bandit_compound_operator_memory_coefficient(), target);
3154 cached_has_bits = this_.
_impl_._has_bits_[1];
3156 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3157 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {
3158 target = stream->EnsureSpace(target);
3159 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3160 43, this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient(), target);
3164 cached_has_bits = this_.
_impl_._has_bits_[0];
3166 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3167 if (this_._internal_use_generalized_cp_sat() != 0) {
3168 target = stream->EnsureSpace(target);
3169 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3170 47, this_._internal_use_generalized_cp_sat(), target);
3175 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
3176 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3181 cached_has_bits = this_.
_impl_._has_bits_[1];
3183 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3184 target = stream->EnsureSpace(target);
3185 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3186 50, this_._internal_disable_scheduling_beware_this_may_degrade_performance(), target);
3190 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3191 if (this_._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {
3192 target = stream->EnsureSpace(target);
3193 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3194 51, this_._internal_guided_local_search_reset_penalties_on_new_best_solution(), target);
3199 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3200 if (this_._internal_fallback_to_cp_sat_size_threshold() != 0) {
3201 target = stream->EnsureSpace(target);
3202 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3203 52, this_._internal_fallback_to_cp_sat_size_threshold(), target);
3208 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3209 if (::absl::bit_cast<::uint64_t>(this_._internal_ls_operator_neighbors_ratio()) != 0) {
3210 target = stream->EnsureSpace(target);
3211 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3212 53, this_._internal_ls_operator_neighbors_ratio(), target);
3217 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3218 if (this_._internal_ls_operator_min_neighbors() != 0) {
3219 target = stream->EnsureSpace(target);
3220 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3221 54, this_._internal_ls_operator_min_neighbors(), target);
3225 cached_has_bits = this_.
_impl_._has_bits_[0];
3227 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3228 if (this_._internal_report_intermediate_cp_sat_solutions() != 0) {
3229 target = stream->EnsureSpace(target);
3230 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3231 56, this_._internal_report_intermediate_cp_sat_solutions(), target);
3235 cached_has_bits = this_.
_impl_._has_bits_[1];
3237 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3238 if (::absl::bit_cast<::uint64_t>(this_._internal_secondary_ls_time_limit_ratio()) != 0) {
3239 target = stream->EnsureSpace(target);
3240 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3241 57, this_._internal_secondary_ls_time_limit_ratio(), target);
3246 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3247 if (this_._internal_use_iterated_local_search() != 0) {
3248 target = stream->EnsureSpace(target);
3249 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3250 58, this_._internal_use_iterated_local_search(), target);
3255 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3256 if (this_._internal_first_solution_optimization_period() != 0) {
3257 target = stream->EnsureSpace(target);
3258 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3259 59, this_._internal_first_solution_optimization_period(), target);
3263 cached_has_bits = this_.
_impl_._has_bits_[0];
3265 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
3266 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3267 60, *this_.
_impl_.iterated_local_search_parameters_, this_.
_impl_.iterated_local_search_parameters_->
GetCachedSize(), target,
3271 cached_has_bits = this_.
_impl_._has_bits_[1];
3273 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3274 if (this_._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {
3275 target = stream->EnsureSpace(target);
3276 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3277 61, this_._internal_guided_local_search_penalize_with_vehicle_classes(), target);
3282 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3283 if (this_._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {
3284 target = stream->EnsureSpace(target);
3285 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3286 62, this_._internal_use_guided_local_search_penalties_in_local_search_operators(), target);
3290 cached_has_bits = this_.
_impl_._has_bits_[0];
3292 if (CheckHasBitForRepeated(cached_has_bits, 0x10000000U)) {
3294 ::size_t byte_size = this_.
_impl_._local_search_metaheuristics_cached_byte_size_.Get();
3295 if (byte_size > 0) {
3296 target = stream->WriteEnumPacked(
3297 63, this_._internal_local_search_metaheuristics(), byte_size, target);
3302 cached_has_bits = this_.
_impl_._has_bits_[1];
3304 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3305 if (this_._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {
3306 target = stream->EnsureSpace(target);
3307 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3308 64, this_._internal_num_max_local_optima_before_metaheuristic_switch(), target);
3313 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3314 if (this_._internal_max_swap_active_chain_size() != 0) {
3315 target = stream->EnsureSpace(target);
3316 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3317 66, this_._internal_max_swap_active_chain_size(), target);
3322 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3323 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3324 68, *this_.
_impl_.local_cheapest_insertion_parameters_, this_.
_impl_.local_cheapest_insertion_parameters_->
GetCachedSize(), target,
3329 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3330 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3331 69, *this_.
_impl_.local_cheapest_cost_insertion_parameters_, this_.
_impl_.local_cheapest_cost_insertion_parameters_->
GetCachedSize(), target,
3336 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3337 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3342 cached_has_bits = this_.
_impl_._has_bits_[0];
3344 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3345 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3346 71, *this_.
_impl_.global_cheapest_insertion_first_solution_parameters_, this_.
_impl_.global_cheapest_insertion_first_solution_parameters_->
GetCachedSize(), target,
3350 cached_has_bits = this_.
_impl_._has_bits_[1];
3352 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3353 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3354 72, *this_.
_impl_.global_cheapest_insertion_ls_operator_parameters_, this_.
_impl_.global_cheapest_insertion_ls_operator_parameters_->
GetCachedSize(), target,
3358 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
3360 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
3361 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
3367#if defined(PROTOBUF_CUSTOM_VTABLE)
3375 ::size_t total_size = 0;
3377 ::uint32_t cached_has_bits = 0;
3379 (void)cached_has_bits;
3381 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
3382 cached_has_bits = this_._impl_._has_bits_[0];
3383 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
3385 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3387 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_search_operators_);
3390 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3392 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.time_limit_);
3395 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3397 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.lns_time_limit_);
3400 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3402 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.improvement_limit_parameters_);
3405 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3407 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.global_cheapest_insertion_first_solution_parameters_);
3410 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3411 if (this_._internal_first_solution_strategy() != 0) {
3413 ::_pbi::WireFormatLite::EnumSize(this_._internal_first_solution_strategy());
3417 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3418 if (this_._internal_local_search_metaheuristic() != 0) {
3420 ::_pbi::WireFormatLite::EnumSize(this_._internal_local_search_metaheuristic());
3424 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3425 if (::absl::bit_cast<::uint64_t>(this_._internal_guided_local_search_lambda_coefficient()) != 0) {
3430 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
3432 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3433 if (::absl::bit_cast<::uint64_t>(this_._internal_optimization_step()) != 0) {
3438 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3439 if (this_._internal_solution_limit() != 0) {
3440 total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
3441 this_._internal_solution_limit());
3445 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3446 if (this_._internal_use_unfiltered_first_solution_strategy() != 0) {
3451 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3452 if (this_._internal_use_depth_first_search() != 0) {
3457 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3458 if (this_._internal_use_full_propagation() != 0) {
3463 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3464 if (this_._internal_log_search() != 0) {
3469 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3470 if (this_._internal_number_of_solutions_to_collect() != 0) {
3471 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3472 this_._internal_number_of_solutions_to_collect());
3476 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3477 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_scaling_factor()) != 0) {
3482 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
3484 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3485 if (this_._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
3486 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3487 this_._internal_relocate_expensive_chain_num_arcs_to_consider());
3491 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3492 if (this_._internal_use_cp_sat() != 0) {
3494 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cp_sat());
3498 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3499 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_offset()) != 0) {
3504 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3505 if (this_._internal_use_cp() != 0) {
3507 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cp());
3511 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3512 if (this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
3513 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3514 this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
3518 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3519 if (this_._internal_mixed_integer_scheduling_solver() != 0) {
3521 ::_pbi::WireFormatLite::EnumSize(this_._internal_mixed_integer_scheduling_solver());
3525 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3526 if (this_._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
3527 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3528 this_._internal_heuristic_close_nodes_lns_num_nodes());
3532 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3533 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {
3538 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
3540 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3541 if (this_._internal_christofides_use_minimum_matching() != 0) {
3546 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3547 if (this_._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
3552 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3553 if (this_._internal_report_intermediate_cp_sat_solutions() != 0) {
3558 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3559 if (this_._internal_use_generalized_cp_sat() != 0) {
3561 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_generalized_cp_sat());
3565 if (CheckHasBitForRepeated(cached_has_bits, 0x10000000U)) {
3566 total_size += ::_pbi::WireFormatLite::EnumSizeWithPackedTagSize(
3567 this_._internal_local_search_metaheuristics(), 2, this_._impl_._local_search_metaheuristics_cached_byte_size_);
3570 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
3571 if (!this_._internal_log_tag().empty()) {
3572 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
3573 this_._internal_log_tag());
3577 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
3579 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sat_parameters_);
3582 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
3584 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.iterated_local_search_parameters_);
3587 cached_has_bits = this_._impl_._has_bits_[1];
3588 total_size +=
static_cast<bool>(0x00000200U & cached_has_bits) * 3;
3589 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
3591 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3593 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_cheapest_insertion_parameters_);
3596 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3598 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_cheapest_cost_insertion_parameters_);
3601 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3603 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.savings_parameters_);
3606 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3608 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.global_cheapest_insertion_ls_operator_parameters_);
3611 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3612 if (this_._internal_continuous_scheduling_solver() != 0) {
3614 ::_pbi::WireFormatLite::EnumSize(this_._internal_continuous_scheduling_solver());
3618 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3619 if (this_._internal_fallback_to_cp_sat_size_threshold() != 0) {
3620 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3621 this_._internal_fallback_to_cp_sat_size_threshold());
3625 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3626 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {
3631 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3632 if (::absl::bit_cast<::uint64_t>(this_._internal_ls_operator_neighbors_ratio()) != 0) {
3637 if (BatchCheckHasBit(cached_has_bits, 0x0000fd00U)) {
3639 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3640 if (this_._internal_ls_operator_min_neighbors() != 0) {
3641 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3642 this_._internal_ls_operator_min_neighbors());
3646 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3647 if (this_._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {
3652 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3653 if (this_._internal_use_iterated_local_search() != 0) {
3658 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3659 if (this_._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {
3664 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3665 if (::absl::bit_cast<::uint64_t>(this_._internal_secondary_ls_time_limit_ratio()) != 0) {
3670 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3671 if (this_._internal_first_solution_optimization_period() != 0) {
3672 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3673 this_._internal_first_solution_optimization_period());
3677 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3678 if (this_._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {
3683 if (BatchCheckHasBit(cached_has_bits, 0x00030000U)) {
3685 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3686 if (this_._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {
3687 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3688 this_._internal_num_max_local_optima_before_metaheuristic_switch());
3692 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3693 if (this_._internal_max_swap_active_chain_size() != 0) {
3694 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3695 this_._internal_max_swap_active_chain_size());
3699 return this_.MaybeComputeUnknownFieldsSize(total_size,
3700 &this_._impl_._cached_size_);
3703void RoutingSearchParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,
3704 const ::google::protobuf::MessageLite& from_msg) {
3708 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
3709 from.CheckHasBitConsistency();
3713 ABSL_DCHECK_NE(&from, _this);
3714 ::uint32_t cached_has_bits = 0;
3715 (void)cached_has_bits;
3717 cached_has_bits = from._impl_._has_bits_[0];
3718 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
3719 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3720 ABSL_DCHECK(from._impl_.local_search_operators_ !=
nullptr);
3721 if (_this->_impl_.local_search_operators_ ==
nullptr) {
3722 _this->_impl_.local_search_operators_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_search_operators_);
3724 _this->_impl_.local_search_operators_->MergeFrom(*from._impl_.local_search_operators_);
3727 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3728 ABSL_DCHECK(from._impl_.time_limit_ !=
nullptr);
3729 if (_this->_impl_.time_limit_ ==
nullptr) {
3730 _this->_impl_.time_limit_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.time_limit_);
3732 _this->_impl_.time_limit_->MergeFrom(*from._impl_.time_limit_);
3735 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3736 ABSL_DCHECK(from._impl_.lns_time_limit_ !=
nullptr);
3737 if (_this->_impl_.lns_time_limit_ ==
nullptr) {
3738 _this->_impl_.lns_time_limit_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lns_time_limit_);
3740 _this->_impl_.lns_time_limit_->MergeFrom(*from._impl_.lns_time_limit_);
3743 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3744 ABSL_DCHECK(from._impl_.improvement_limit_parameters_ !=
nullptr);
3745 if (_this->_impl_.improvement_limit_parameters_ ==
nullptr) {
3746 _this->_impl_.improvement_limit_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.improvement_limit_parameters_);
3748 _this->_impl_.improvement_limit_parameters_->MergeFrom(*from._impl_.improvement_limit_parameters_);
3751 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3752 ABSL_DCHECK(from._impl_.global_cheapest_insertion_first_solution_parameters_ !=
nullptr);
3753 if (_this->_impl_.global_cheapest_insertion_first_solution_parameters_ ==
nullptr) {
3754 _this->_impl_.global_cheapest_insertion_first_solution_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.global_cheapest_insertion_first_solution_parameters_);
3756 _this->_impl_.global_cheapest_insertion_first_solution_parameters_->MergeFrom(*from._impl_.global_cheapest_insertion_first_solution_parameters_);
3759 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3760 if (from._internal_first_solution_strategy() != 0) {
3761 _this->_impl_.first_solution_strategy_ = from._impl_.first_solution_strategy_;
3764 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3765 if (from._internal_local_search_metaheuristic() != 0) {
3766 _this->_impl_.local_search_metaheuristic_ = from._impl_.local_search_metaheuristic_;
3769 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3770 if (::absl::bit_cast<::uint64_t>(from._internal_guided_local_search_lambda_coefficient()) != 0) {
3771 _this->_impl_.guided_local_search_lambda_coefficient_ = from._impl_.guided_local_search_lambda_coefficient_;
3775 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
3776 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3777 if (::absl::bit_cast<::uint64_t>(from._internal_optimization_step()) != 0) {
3778 _this->_impl_.optimization_step_ = from._impl_.optimization_step_;
3781 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3782 if (from._internal_solution_limit() != 0) {
3783 _this->_impl_.solution_limit_ = from._impl_.solution_limit_;
3786 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3787 if (from._internal_use_unfiltered_first_solution_strategy() != 0) {
3788 _this->_impl_.use_unfiltered_first_solution_strategy_ = from._impl_.use_unfiltered_first_solution_strategy_;
3791 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3792 if (from._internal_use_depth_first_search() != 0) {
3793 _this->_impl_.use_depth_first_search_ = from._impl_.use_depth_first_search_;
3796 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3797 if (from._internal_use_full_propagation() != 0) {
3798 _this->_impl_.use_full_propagation_ = from._impl_.use_full_propagation_;
3801 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3802 if (from._internal_log_search() != 0) {
3803 _this->_impl_.log_search_ = from._impl_.log_search_;
3806 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3807 if (from._internal_number_of_solutions_to_collect() != 0) {
3808 _this->_impl_.number_of_solutions_to_collect_ = from._impl_.number_of_solutions_to_collect_;
3811 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3812 if (::absl::bit_cast<::uint64_t>(from._internal_log_cost_scaling_factor()) != 0) {
3813 _this->_impl_.log_cost_scaling_factor_ = from._impl_.log_cost_scaling_factor_;
3817 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
3818 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3819 if (from._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
3820 _this->_impl_.relocate_expensive_chain_num_arcs_to_consider_ = from._impl_.relocate_expensive_chain_num_arcs_to_consider_;
3823 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3824 if (from._internal_use_cp_sat() != 0) {
3825 _this->_impl_.use_cp_sat_ = from._impl_.use_cp_sat_;
3828 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3829 if (::absl::bit_cast<::uint64_t>(from._internal_log_cost_offset()) != 0) {
3830 _this->_impl_.log_cost_offset_ = from._impl_.log_cost_offset_;
3833 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3834 if (from._internal_use_cp() != 0) {
3835 _this->_impl_.use_cp_ = from._impl_.use_cp_;
3838 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3839 if (from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
3840 _this->_impl_.heuristic_expensive_chain_lns_num_arcs_to_consider_ = from._impl_.heuristic_expensive_chain_lns_num_arcs_to_consider_;
3843 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3844 if (from._internal_mixed_integer_scheduling_solver() != 0) {
3845 _this->_impl_.mixed_integer_scheduling_solver_ = from._impl_.mixed_integer_scheduling_solver_;
3848 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3849 if (from._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
3850 _this->_impl_.heuristic_close_nodes_lns_num_nodes_ = from._impl_.heuristic_close_nodes_lns_num_nodes_;
3853 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3854 if (::absl::bit_cast<::uint64_t>(from._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {
3855 _this->_impl_.multi_armed_bandit_compound_operator_memory_coefficient_ = from._impl_.multi_armed_bandit_compound_operator_memory_coefficient_;
3859 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
3860 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3861 if (from._internal_christofides_use_minimum_matching() != 0) {
3862 _this->_impl_.christofides_use_minimum_matching_ = from._impl_.christofides_use_minimum_matching_;
3865 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3866 if (from._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
3867 _this->_impl_.use_multi_armed_bandit_concatenate_operators_ = from._impl_.use_multi_armed_bandit_concatenate_operators_;
3870 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3871 if (from._internal_report_intermediate_cp_sat_solutions() != 0) {
3872 _this->_impl_.report_intermediate_cp_sat_solutions_ = from._impl_.report_intermediate_cp_sat_solutions_;
3875 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3876 if (from._internal_use_generalized_cp_sat() != 0) {
3877 _this->_impl_.use_generalized_cp_sat_ = from._impl_.use_generalized_cp_sat_;
3880 if (CheckHasBitForRepeated(cached_has_bits, 0x10000000U)) {
3881 _this->_internal_mutable_local_search_metaheuristics()->MergeFrom(from._internal_local_search_metaheuristics());
3883 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
3884 if (!from._internal_log_tag().empty()) {
3885 _this->_internal_set_log_tag(from._internal_log_tag());
3887 if (_this->_impl_.log_tag_.IsDefault()) {
3888 _this->_internal_set_log_tag(
"");
3892 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
3893 ABSL_DCHECK(from._impl_.sat_parameters_ !=
nullptr);
3894 if (_this->_impl_.sat_parameters_ ==
nullptr) {
3895 _this->_impl_.sat_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sat_parameters_);
3897 _this->_impl_.sat_parameters_->MergeFrom(*from._impl_.sat_parameters_);
3900 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
3901 ABSL_DCHECK(from._impl_.iterated_local_search_parameters_ !=
nullptr);
3902 if (_this->_impl_.iterated_local_search_parameters_ ==
nullptr) {
3903 _this->_impl_.iterated_local_search_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.iterated_local_search_parameters_);
3905 _this->_impl_.iterated_local_search_parameters_->MergeFrom(*from._impl_.iterated_local_search_parameters_);
3909 cached_has_bits = from._impl_._has_bits_[1];
3910 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
3911 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
3912 ABSL_DCHECK(from._impl_.local_cheapest_insertion_parameters_ !=
nullptr);
3913 if (_this->_impl_.local_cheapest_insertion_parameters_ ==
nullptr) {
3914 _this->_impl_.local_cheapest_insertion_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_cheapest_insertion_parameters_);
3916 _this->_impl_.local_cheapest_insertion_parameters_->MergeFrom(*from._impl_.local_cheapest_insertion_parameters_);
3919 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3920 ABSL_DCHECK(from._impl_.local_cheapest_cost_insertion_parameters_ !=
nullptr);
3921 if (_this->_impl_.local_cheapest_cost_insertion_parameters_ ==
nullptr) {
3922 _this->_impl_.local_cheapest_cost_insertion_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_cheapest_cost_insertion_parameters_);
3924 _this->_impl_.local_cheapest_cost_insertion_parameters_->MergeFrom(*from._impl_.local_cheapest_cost_insertion_parameters_);
3927 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3928 ABSL_DCHECK(from._impl_.savings_parameters_ !=
nullptr);
3929 if (_this->_impl_.savings_parameters_ ==
nullptr) {
3930 _this->_impl_.savings_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.savings_parameters_);
3932 _this->_impl_.savings_parameters_->MergeFrom(*from._impl_.savings_parameters_);
3935 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3936 ABSL_DCHECK(from._impl_.global_cheapest_insertion_ls_operator_parameters_ !=
nullptr);
3937 if (_this->_impl_.global_cheapest_insertion_ls_operator_parameters_ ==
nullptr) {
3938 _this->_impl_.global_cheapest_insertion_ls_operator_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.global_cheapest_insertion_ls_operator_parameters_);
3940 _this->_impl_.global_cheapest_insertion_ls_operator_parameters_->MergeFrom(*from._impl_.global_cheapest_insertion_ls_operator_parameters_);
3943 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3944 if (from._internal_continuous_scheduling_solver() != 0) {
3945 _this->_impl_.continuous_scheduling_solver_ = from._impl_.continuous_scheduling_solver_;
3948 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3949 if (from._internal_fallback_to_cp_sat_size_threshold() != 0) {
3950 _this->_impl_.fallback_to_cp_sat_size_threshold_ = from._impl_.fallback_to_cp_sat_size_threshold_;
3953 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3954 if (::absl::bit_cast<::uint64_t>(from._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {
3955 _this->_impl_.multi_armed_bandit_compound_operator_exploration_coefficient_ = from._impl_.multi_armed_bandit_compound_operator_exploration_coefficient_;
3958 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3959 if (::absl::bit_cast<::uint64_t>(from._internal_ls_operator_neighbors_ratio()) != 0) {
3960 _this->_impl_.ls_operator_neighbors_ratio_ = from._impl_.ls_operator_neighbors_ratio_;
3964 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
3965 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3966 if (from._internal_ls_operator_min_neighbors() != 0) {
3967 _this->_impl_.ls_operator_min_neighbors_ = from._impl_.ls_operator_min_neighbors_;
3970 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3971 _this->_impl_.disable_scheduling_beware_this_may_degrade_performance_ = from._impl_.disable_scheduling_beware_this_may_degrade_performance_;
3973 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3974 if (from._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {
3975 _this->_impl_.guided_local_search_reset_penalties_on_new_best_solution_ = from._impl_.guided_local_search_reset_penalties_on_new_best_solution_;
3978 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3979 if (from._internal_use_iterated_local_search() != 0) {
3980 _this->_impl_.use_iterated_local_search_ = from._impl_.use_iterated_local_search_;
3983 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3984 if (from._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {
3985 _this->_impl_.guided_local_search_penalize_with_vehicle_classes_ = from._impl_.guided_local_search_penalize_with_vehicle_classes_;
3988 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3989 if (::absl::bit_cast<::uint64_t>(from._internal_secondary_ls_time_limit_ratio()) != 0) {
3990 _this->_impl_.secondary_ls_time_limit_ratio_ = from._impl_.secondary_ls_time_limit_ratio_;
3993 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3994 if (from._internal_first_solution_optimization_period() != 0) {
3995 _this->_impl_.first_solution_optimization_period_ = from._impl_.first_solution_optimization_period_;
3998 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3999 if (from._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {
4000 _this->_impl_.use_guided_local_search_penalties_in_local_search_operators_ = from._impl_.use_guided_local_search_penalties_in_local_search_operators_;
4004 if (BatchCheckHasBit(cached_has_bits, 0x00030000U)) {
4005 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
4006 if (from._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {
4007 _this->_impl_.num_max_local_optima_before_metaheuristic_switch_ = from._impl_.num_max_local_optima_before_metaheuristic_switch_;
4010 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
4011 if (from._internal_max_swap_active_chain_size() != 0) {
4012 _this->_impl_.max_swap_active_chain_size_ = from._impl_.max_swap_active_chain_size_;
4016 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
4017 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
4018 from._internal_metadata_);
4023 if (&from ==
this)
return;
4029void RoutingSearchParameters::InternalSwap(
RoutingSearchParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
4031 auto* arena = GetArena();
4032 ABSL_DCHECK_EQ(arena, other->GetArena());
4033 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4034 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
4035 swap(
_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
4036 ::google::protobuf::internal::memswap<
4040 reinterpret_cast<char*
>(&
_impl_.local_search_operators_),
4041 reinterpret_cast<char*
>(&other->_impl_.local_search_operators_));
4042 _impl_.local_search_metaheuristics_.InternalSwap(&other->_impl_.local_search_metaheuristics_);
4043 ::_pbi::ArenaStringPtr::InternalSwap(&
_impl_.log_tag_, &other->_impl_.log_tag_, arena);
4044 ::google::protobuf::internal::memswap<
4048 reinterpret_cast<char*
>(&
_impl_.sat_parameters_),
4049 reinterpret_cast<char*
>(&other->_impl_.sat_parameters_));
4053 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
4060 decltype(::std::declval<RoutingModelParameters>()._impl_._has_bits_);
4066 ::google::protobuf::internal::TSanWrite(&
_impl_);
4067 if (
_impl_.solver_parameters_ !=
nullptr)
_impl_.solver_parameters_->Clear();
4068 ClearHasBit(
_impl_._has_bits_[0],
4072#if defined(PROTOBUF_CUSTOM_VTABLE)
4075 : ::google::protobuf::Message(arena) {
4080PROTOBUF_NDEBUG_INLINE RoutingModelParameters::Impl_::Impl_(
4081 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
4082 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
4083 [[maybe_unused]] const ::operations_research::RoutingModelParameters& from_msg)
4084 : _has_bits_{from._has_bits_},
4088 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
4090#if defined(PROTOBUF_CUSTOM_VTABLE)
4093 : ::google::protobuf::Message(arena) {
4097 _internal_metadata_.
MergeFrom<::google::protobuf::UnknownFieldSet>(
4098 from._internal_metadata_);
4099 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
4100 ::uint32_t cached_has_bits = _impl_._has_bits_[0];
4101 _impl_.solver_parameters_ = (CheckHasBit(cached_has_bits, 0x00000001U))
4102 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.solver_parameters_)
4104 ::memcpy(
reinterpret_cast<char*
>(&_impl_) +
4105 offsetof(Impl_, reduce_vehicle_cost_model_),
4106 reinterpret_cast<const char*
>(&from._impl_) +
4107 offsetof(Impl_, reduce_vehicle_cost_model_),
4108 offsetof(Impl_, max_callback_cache_size_) -
4109 offsetof(Impl_, reduce_vehicle_cost_model_) +
4110 sizeof(Impl_::max_callback_cache_size_));
4114PROTOBUF_NDEBUG_INLINE RoutingModelParameters::Impl_::Impl_(
4115 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
4116 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
4117 : _cached_size_{0} {}
4119inline void RoutingModelParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
4120 new (&
_impl_) Impl_(internal_visibility(), arena);
4121 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
4122 offsetof(Impl_, solver_parameters_),
4124 offsetof(Impl_, max_callback_cache_size_) -
4125 offsetof(Impl_, solver_parameters_) +
4126 sizeof(Impl_::max_callback_cache_size_));
4134 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
4135 this_.CheckHasBitConsistency();
4137 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
4138 ABSL_DCHECK(this_.GetArena() ==
nullptr);
4139 delete this_.
_impl_.solver_parameters_;
4143inline void* PROTOBUF_NONNULL RoutingModelParameters::PlacementNew_(
4144 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
4145 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
4148constexpr auto RoutingModelParameters::InternalNewImpl_() {
4153 return ::google::protobuf::internal::ClassDataFull{
4154 ::google::protobuf::internal::ClassData{
4159 &RoutingModelParameters::MergeImpl,
4160 ::google::protobuf::Message::GetNewImpl<RoutingModelParameters>(),
4161#if defined(PROTOBUF_CUSTOM_VTABLE)
4162 &RoutingModelParameters::SharedDtor,
4169 &RoutingModelParameters::kDescriptorMethods,
4175PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
4179PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
4180RoutingModelParameters::GetClassData()
const {
4185PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
4186const ::_pbi::TcParseTable<2, 3, 1, 0, 2>
4187RoutingModelParameters::_table_ = {
4189 PROTOBUF_FIELD_OFFSET(RoutingModelParameters, _impl_._has_bits_),
4192 offsetof(
decltype(_table_), field_lookup_table),
4194 offsetof(
decltype(_table_), field_entries),
4197 offsetof(
decltype(_table_), aux_entries),
4200 ::_pbi::TcParser::GenericFallback,
4201 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
4202 ::_pbi::TcParser::GetTable<::operations_research::RoutingModelParameters>(),
4205 {::_pbi::TcParser::MiniParse, {}},
4207 {::_pbi::TcParser::FastMtS1,
4211 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
RoutingModelParameters, _impl_.reduce_vehicle_cost_model_), 1>(),
4215 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
RoutingModelParameters, _impl_.max_callback_cache_size_), 2>(),
4222 {PROTOBUF_FIELD_OFFSET(
RoutingModelParameters, _impl_.solver_parameters_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
4224 {PROTOBUF_FIELD_OFFSET(
RoutingModelParameters, _impl_.reduce_vehicle_cost_model_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
4226 {PROTOBUF_FIELD_OFFSET(
RoutingModelParameters, _impl_.max_callback_cache_size_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
4229 {::_pbi::TcParser::GetTable<::operations_research::ConstraintSolverParameters>()},
4236 ::google::protobuf::internal::TSanWrite(&
_impl_);
4237 ::uint32_t cached_has_bits = 0;
4239 (void) cached_has_bits;
4241 cached_has_bits =
_impl_._has_bits_[0];
4242 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
4243 ABSL_DCHECK(
_impl_.solver_parameters_ !=
nullptr);
4244 _impl_.solver_parameters_->Clear();
4246 if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
4247 ::memset(&
_impl_.reduce_vehicle_cost_model_, 0,
static_cast<::
size_t>(
4248 reinterpret_cast<char*
>(&
_impl_.max_callback_cache_size_) -
4249 reinterpret_cast<char*
>(&
_impl_.reduce_vehicle_cost_model_)) +
sizeof(
_impl_.max_callback_cache_size_));
4251 _impl_._has_bits_.Clear();
4252 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
4255#if defined(PROTOBUF_CUSTOM_VTABLE)
4257 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
4258 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
4262 ::uint8_t* PROTOBUF_NONNULL target,
4263 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
4266 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
4267 this_.CheckHasBitConsistency();
4270 ::uint32_t cached_has_bits = 0;
4271 (void)cached_has_bits;
4273 cached_has_bits = this_._impl_._has_bits_[0];
4275 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
4276 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
4277 1, *this_._impl_.solver_parameters_, this_._impl_.solver_parameters_->GetCachedSize(), target,
4282 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
4283 if (this_._internal_reduce_vehicle_cost_model() != 0) {
4284 target = stream->EnsureSpace(target);
4285 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4286 2, this_._internal_reduce_vehicle_cost_model(), target);
4291 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
4292 if (this_._internal_max_callback_cache_size() != 0) {
4294 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
4295 stream, this_._internal_max_callback_cache_size(), target);
4299 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
4301 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
4302 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
4308#if defined(PROTOBUF_CUSTOM_VTABLE)
4316 ::size_t total_size = 0;
4318 ::uint32_t cached_has_bits = 0;
4320 (void)cached_has_bits;
4322 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
4323 cached_has_bits = this_._impl_._has_bits_[0];
4324 if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
4326 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
4328 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.solver_parameters_);
4331 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
4332 if (this_._internal_reduce_vehicle_cost_model() != 0) {
4337 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
4338 if (this_._internal_max_callback_cache_size() != 0) {
4339 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
4340 this_._internal_max_callback_cache_size());
4344 return this_.MaybeComputeUnknownFieldsSize(total_size,
4345 &this_._impl_._cached_size_);
4348void RoutingModelParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,
4349 const ::google::protobuf::MessageLite& from_msg) {
4353 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
4354 from.CheckHasBitConsistency();
4358 ABSL_DCHECK_NE(&from, _this);
4359 ::uint32_t cached_has_bits = 0;
4360 (void)cached_has_bits;
4362 cached_has_bits = from._impl_._has_bits_[0];
4363 if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
4364 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
4365 ABSL_DCHECK(from._impl_.solver_parameters_ !=
nullptr);
4366 if (_this->_impl_.solver_parameters_ ==
nullptr) {
4367 _this->_impl_.solver_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.solver_parameters_);
4369 _this->_impl_.solver_parameters_->MergeFrom(*from._impl_.solver_parameters_);
4372 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
4373 if (from._internal_reduce_vehicle_cost_model() != 0) {
4374 _this->_impl_.reduce_vehicle_cost_model_ = from._impl_.reduce_vehicle_cost_model_;
4377 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
4378 if (from._internal_max_callback_cache_size() != 0) {
4379 _this->_impl_.max_callback_cache_size_ = from._impl_.max_callback_cache_size_;
4383 _this->_impl_._has_bits_[0] |= cached_has_bits;
4384 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
4385 from._internal_metadata_);
4390 if (&from ==
this)
return;
4396void RoutingModelParameters::InternalSwap(
RoutingModelParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
4398 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4399 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
4400 ::google::protobuf::internal::memswap<
4404 reinterpret_cast<char*
>(&
_impl_.solver_parameters_),
4405 reinterpret_cast<char*
>(&other->_impl_.solver_parameters_));
4409 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
4418PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
4421 ::std::false_type{});
4422#include "google/protobuf/port_undef.inc"
static PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 ::std::false_type _static_init2_
static const ::_pb::Message *PROTOBUF_NONNULL const file_default_instances[]
int GetCachedSize() const
int GetCachedSize() const
int GetCachedSize() const
static constexpr ::int32_t kHasBitsOffset
friend class ::google::protobuf::MessageLite
void clear_solver_parameters()
void CopyFrom(const RoutingModelParameters &from)
::size_t ByteSizeLong() const final
static constexpr auto InternalGenerateClassData_()
~RoutingModelParameters() PROTOBUF_FINAL
friend void swap(RoutingModelParameters &a, RoutingModelParameters &b)
void MergeFrom(const RoutingModelParameters &from)
::google::protobuf::Metadata GetMetadata() const
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend class ::google::protobuf::Arena
static constexpr ::int32_t kHasBitsOffset
static constexpr ::int32_t kHasBitsOffset
decltype(::std::declval< RoutingSearchParameters_ImprovementSearchLimitParameters >()._impl_._has_bits_) HasBits
void CopyFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
friend class ::google::protobuf::MessageLite
~RoutingSearchParameters_ImprovementSearchLimitParameters() PROTOBUF_FINAL
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
void MergeFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)
::size_t ByteSizeLong() const final
static constexpr auto InternalGenerateClassData_()
::google::protobuf::Metadata GetMetadata() const
int GetCachedSize() const
friend void swap(RoutingSearchParameters_ImprovementSearchLimitParameters &a, RoutingSearchParameters_ImprovementSearchLimitParameters &b)
RoutingSearchParameters_ImprovementSearchLimitParameters()
static constexpr ::int32_t kHasBitsOffset
decltype(::std::declval< RoutingSearchParameters_LocalSearchNeighborhoodOperators >()._impl_._has_bits_) HasBits
::google::protobuf::Metadata GetMetadata() const
friend class ::google::protobuf::MessageLite
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
::size_t ByteSizeLong() const final
void MergeFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
~RoutingSearchParameters_LocalSearchNeighborhoodOperators() PROTOBUF_FINAL
int GetCachedSize() const
void CopyFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)
friend void swap(RoutingSearchParameters_LocalSearchNeighborhoodOperators &a, RoutingSearchParameters_LocalSearchNeighborhoodOperators &b)
static constexpr auto InternalGenerateClassData_()
RoutingSearchParameters_LocalSearchNeighborhoodOperators()
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
void CopyFrom(const RoutingSearchParameters &from)
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend class ::google::protobuf::MessageLite
void clear_savings_parameters()
RoutingSearchParameters()
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
void clear_local_cheapest_cost_insertion_parameters()
void clear_global_cheapest_insertion_first_solution_parameters()
~RoutingSearchParameters() PROTOBUF_FINAL
void clear_global_cheapest_insertion_ls_operator_parameters()
::google::protobuf::Metadata GetMetadata() const
void clear_sat_parameters()
void clear_iterated_local_search_parameters()
void MergeFrom(const RoutingSearchParameters &from)
::size_t ByteSizeLong() const final
static constexpr auto InternalGenerateClassData_()
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
void clear_local_cheapest_insertion_parameters()
void clear_lns_time_limit()
friend void swap(RoutingSearchParameters &a, RoutingSearchParameters &b)
friend class ::google::protobuf::Arena
int GetCachedSize() const
int GetCachedSize() const
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull RoutingModelParameters_class_data_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_
PROTOBUF_CONSTINIT const uint32_t RoutingSearchParameters_SchedulingSolver_internal_data_[]
RoutingSearchParameters_SchedulingSolver
LocalSearchMetaheuristic_Value
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL RoutingSearchParameters_SchedulingSolver_descriptor()
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull RoutingSearchParameters_ImprovementSearchLimitParameters_class_data_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull RoutingSearchParameters_LocalSearchNeighborhoodOperators_class_data_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RoutingSearchParametersDefaultTypeInternal _RoutingSearchParameters_default_instance_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull RoutingSearchParameters_class_data_
FirstSolutionStrategy_Value
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal _RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2futil_2foptional_5fboolean_2eproto
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fenums_2eproto
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fheuristic_5fparameters_2eproto
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fils_2eproto
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static constexprconst ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
static const ::_pbi::DescriptorTable *PROTOBUF_NONNULL const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[7]
::absl::once_flag descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_once
const ::uint32_t TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold)
static const ::_pb::EnumDescriptor *PROTOBUF_NONNULL file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[1]
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2fsolver_5fparameters_2eproto
PROTOBUF_CONSTEXPR RoutingModelParametersDefaultTypeInternal()
RoutingModelParameters _instance
~RoutingModelParametersDefaultTypeInternal()
RoutingSearchParameters _instance
~RoutingSearchParametersDefaultTypeInternal()
PROTOBUF_CONSTEXPR RoutingSearchParametersDefaultTypeInternal()
RoutingSearchParameters_ImprovementSearchLimitParameters _instance
PROTOBUF_CONSTEXPR RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal()
~RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal()
PROTOBUF_CONSTEXPR RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal()
RoutingSearchParameters_LocalSearchNeighborhoodOperators _instance
~RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal()