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
73#if defined(PROTOBUF_CUSTOM_VTABLE)
76 : ::google::protobuf::Message(),
78 _impl_(::_pbi::ConstantInitialized()) {
88PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
91inline constexpr RoutingSearchParameters_ImprovementSearchLimitParameters::Impl_::Impl_(
92 ::_pbi::ConstantInitialized) noexcept
94 improvement_rate_coefficient_{0},
95 improvement_rate_solutions_distance_{0} {}
99#if defined(PROTOBUF_CUSTOM_VTABLE)
102 : ::google::protobuf::Message(),
104 _impl_(::_pbi::ConstantInitialized()) {
114PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
117inline constexpr RoutingModelParameters::Impl_::Impl_(
118 ::_pbi::ConstantInitialized) noexcept
120 solver_parameters_{
nullptr},
121 reduce_vehicle_cost_model_{
false},
122 max_callback_cache_size_{0} {}
126#if defined(PROTOBUF_CUSTOM_VTABLE)
129 : ::google::protobuf::Message(),
131 _impl_(::_pbi::ConstantInitialized()) {
141PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
144inline constexpr RoutingSearchParameters::Impl_::Impl_(
145 ::_pbi::ConstantInitialized) noexcept
147 local_search_metaheuristics_{},
148 _local_search_metaheuristics_cached_byte_size_{0},
149 local_cheapest_insertion_sorting_properties_{},
150 _local_cheapest_insertion_sorting_properties_cached_byte_size_{0},
152 &::google::protobuf::internal::fixed_address_empty_string,
153 ::_pbi::ConstantInitialized()),
154 local_search_operators_{
nullptr},
155 time_limit_{
nullptr},
156 lns_time_limit_{
nullptr},
157 improvement_limit_parameters_{
nullptr},
158 sat_parameters_{
nullptr},
159 iterated_local_search_parameters_{
nullptr},
162 guided_local_search_lambda_coefficient_{0},
163 optimization_step_{0},
164 solution_limit_{::int64_t{0}},
165 use_unfiltered_first_solution_strategy_{
false},
166 use_depth_first_search_{
false},
167 use_full_propagation_{
false},
169 number_of_solutions_to_collect_{0},
170 savings_neighbors_ratio_{0},
171 cheapest_insertion_farthest_seeds_ratio_{0},
172 savings_arc_coefficient_{0},
173 cheapest_insertion_first_solution_neighbors_ratio_{0},
174 log_cost_scaling_factor_{0},
175 savings_max_memory_usage_bytes_{0},
176 relocate_expensive_chain_num_arcs_to_consider_{0},
180 savings_add_reverse_arcs_{
false},
181 christofides_use_minimum_matching_{
false},
182 cheapest_insertion_add_unperformed_entries_{
false},
183 use_multi_armed_bandit_concatenate_operators_{
false},
184 cheapest_insertion_ls_operator_neighbors_ratio_{0},
185 heuristic_expensive_chain_lns_num_arcs_to_consider_{0},
188 heuristic_close_nodes_lns_num_nodes_{0},
189 multi_armed_bandit_compound_operator_memory_coefficient_{0},
190 multi_armed_bandit_compound_operator_exploration_coefficient_{0},
191 cheapest_insertion_first_solution_min_neighbors_{0},
192 cheapest_insertion_ls_operator_min_neighbors_{0},
195 cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_{
false},
196 disable_scheduling_beware_this_may_degrade_performance_{
false},
197 guided_local_search_reset_penalties_on_new_best_solution_{
false},
198 report_intermediate_cp_sat_solutions_{
false},
199 fallback_to_cp_sat_size_threshold_{0},
200 ls_operator_neighbors_ratio_{0},
201 ls_operator_min_neighbors_{0},
203 secondary_ls_time_limit_ratio_{0},
204 first_solution_optimization_period_{0},
205 use_iterated_local_search_{
false},
206 guided_local_search_penalize_with_vehicle_classes_{
false},
207 use_guided_local_search_penalties_in_local_search_operators_{
false},
208 num_max_local_optima_before_metaheuristic_switch_{0},
209 max_swap_active_chain_size_{0} {}
213#if defined(PROTOBUF_CUSTOM_VTABLE)
216 : ::google::protobuf::Message(),
218 _impl_(::_pbi::ConstantInitialized()) {
228PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
231static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
233static constexpr const ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE
456static const ::_pbi::MigrationSchema
471 "\n2ortools/constraint_solver/routing_para"
472 "meters.proto\022\023operations_research\032\036googl"
473 "e/protobuf/duration.proto\032-ortools/const"
474 "raint_solver/routing_enums.proto\032+ortool"
475 "s/constraint_solver/routing_ils.proto\0321o"
476 "rtools/constraint_solver/solver_paramete"
477 "rs.proto\032 ortools/sat/sat_parameters.pro"
478 "to\032#ortools/util/optional_boolean.proto\""
479 "\3277\n\027RoutingSearchParameters\022Q\n\027first_sol"
480 "ution_strategy\030\001 \001(\01620.operations_resear"
481 "ch.FirstSolutionStrategy.Value\022.\n&use_un"
482 "filtered_first_solution_strategy\030\002 \001(\010\022\037"
483 "\n\027savings_neighbors_ratio\030\016 \001(\001\022&\n\036savin"
484 "gs_max_memory_usage_bytes\030\027 \001(\001\022 \n\030savin"
485 "gs_add_reverse_arcs\030\017 \001(\010\022\037\n\027savings_arc"
486 "_coefficient\030\022 \001(\001\022/\n\'cheapest_insertion"
487 "_farthest_seeds_ratio\030\020 \001(\001\0229\n1cheapest_"
488 "insertion_first_solution_neighbors_ratio"
489 "\030\025 \001(\001\0227\n/cheapest_insertion_first_solut"
490 "ion_min_neighbors\030, \001(\005\0226\n.cheapest_inse"
491 "rtion_ls_operator_neighbors_ratio\030\037 \001(\001\022"
492 "4\n,cheapest_insertion_ls_operator_min_ne"
493 "ighbors\030- \001(\005\022P\nHcheapest_insertion_firs"
494 "t_solution_use_neighbors_ratio_for_initi"
495 "alization\030. \001(\010\0222\n*cheapest_insertion_ad"
496 "d_unperformed_entries\030( \001(\010\022}\n1local_che"
497 "apest_insertion_pickup_delivery_strategy"
498 "\0301 \001(\0162B.operations_research.RoutingSear"
499 "chParameters.PairInsertionStrategy\022\202\001\n6l"
500 "ocal_cheapest_cost_insertion_pickup_deli"
501 "very_strategy\0307 \001(\0162B.operations_researc"
502 "h.RoutingSearchParameters.PairInsertionS"
503 "trategy\022z\n+local_cheapest_insertion_sort"
504 "ing_properties\030C \003(\0162E.operations_resear"
505 "ch.RoutingSearchParameters.InsertionSort"
506 "ingProperty\022)\n!christofides_use_minimum_"
507 "matching\030\036 \001(\010\022*\n\"first_solution_optimiz"
508 "ation_period\030; \001(\005\022m\n\026local_search_opera"
509 "tors\030\003 \001(\0132M.operations_research.Routing"
510 "SearchParameters.LocalSearchNeighborhood"
511 "Operators\022#\n\033ls_operator_neighbors_ratio"
512 "\0305 \001(\001\022!\n\031ls_operator_min_neighbors\0306 \001("
513 "\005\0224\n,use_multi_armed_bandit_concatenate_"
514 "operators\030) \001(\010\022\?\n7multi_armed_bandit_co"
515 "mpound_operator_memory_coefficient\030* \001(\001"
516 "\022D\n<multi_armed_bandit_compound_operator"
517 "_exploration_coefficient\030+ \001(\001\022\"\n\032max_sw"
518 "ap_active_chain_size\030B \001(\005\0225\n-relocate_e"
519 "xpensive_chain_num_arcs_to_consider\030\024 \001("
520 "\005\022:\n2heuristic_expensive_chain_lns_num_a"
521 "rcs_to_consider\030 \001(\005\022+\n#heuristic_close"
522 "_nodes_lns_num_nodes\030# \001(\005\022W\n\032local_sear"
523 "ch_metaheuristic\030\004 \001(\01623.operations_rese"
524 "arch.LocalSearchMetaheuristic.Value\022X\n\033l"
525 "ocal_search_metaheuristics\030\? \003(\01623.opera"
526 "tions_research.LocalSearchMetaheuristic."
527 "Value\0228\n0num_max_local_optima_before_met"
528 "aheuristic_switch\030@ \001(\005\022.\n&guided_local_"
529 "search_lambda_coefficient\030\005 \001(\001\022@\n8guide"
530 "d_local_search_reset_penalties_on_new_be"
531 "st_solution\0303 \001(\010\0229\n1guided_local_search"
532 "_penalize_with_vehicle_classes\030= \001(\010\022C\n;"
533 "use_guided_local_search_penalties_in_loc"
534 "al_search_operators\030> \001(\010\022\036\n\026use_depth_f"
535 "irst_search\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.oper"
536 "ations_research.OptionalBoolean\0228\n\nuse_c"
537 "p_sat\030\033 \001(\0162$.operations_research.Option"
538 "alBoolean\022D\n\026use_generalized_cp_sat\030/ \001("
539 "\0162$.operations_research.OptionalBoolean\022"
540 ">\n\016sat_parameters\0300 \001(\0132&.operations_res"
541 "earch.sat.SatParameters\022,\n$report_interm"
542 "ediate_cp_sat_solutions\0308 \001(\010\022)\n!fallbac"
543 "k_to_cp_sat_size_threshold\0304 \001(\005\022c\n\034cont"
544 "inuous_scheduling_solver\030! \001(\0162=.operati"
545 "ons_research.RoutingSearchParameters.Sch"
546 "edulingSolver\022f\n\037mixed_integer_schedulin"
547 "g_solver\030\" \001(\0162=.operations_research.Rou"
548 "tingSearchParameters.SchedulingSolver\022C\n"
549 "6disable_scheduling_beware_this_may_degr"
550 "ade_performance\0302 \001(\010H\000\210\001\001\022\031\n\021optimizati"
551 "on_step\030\007 \001(\001\022&\n\036number_of_solutions_to_"
552 "collect\030\021 \001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n"
553 "\ntime_limit\030\t \001(\0132\031.google.protobuf.Dura"
554 "tion\0221\n\016lns_time_limit\030\n \001(\0132\031.google.pr"
555 "otobuf.Duration\022%\n\035secondary_ls_time_lim"
556 "it_ratio\0309 \001(\001\022s\n\034improvement_limit_para"
557 "meters\030% \001(\0132M.operations_research.Routi"
558 "ngSearchParameters.ImprovementSearchLimi"
559 "tParameters\022\034\n\024use_full_propagation\030\013 \001("
560 "\010\022\022\n\nlog_search\030\r \001(\010\022\037\n\027log_cost_scalin"
561 "g_factor\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022"
562 "\017\n\007log_tag\030$ \001(\t\022!\n\031use_iterated_local_s"
563 "earch\030: \001(\010\022\\\n iterated_local_search_par"
564 "ameters\030< \001(\01322.operations_research.Iter"
565 "atedLocalSearchParameters\032\332\025\n LocalSearc"
566 "hNeighborhoodOperators\022:\n\014use_relocate\030\001"
567 " \001(\0162$.operations_research.OptionalBoole"
568 "an\022\?\n\021use_relocate_pair\030\002 \001(\0162$.operatio"
569 "ns_research.OptionalBoolean\022E\n\027use_light"
570 "_relocate_pair\030\030 \001(\0162$.operations_resear"
571 "ch.OptionalBoolean\022D\n\026use_relocate_neigh"
572 "bors\030\003 \001(\0162$.operations_research.Optiona"
573 "lBoolean\022B\n\024use_relocate_subtrip\030\031 \001(\0162$"
574 ".operations_research.OptionalBoolean\022:\n\014"
575 "use_exchange\030\004 \001(\0162$.operations_research"
576 ".OptionalBoolean\022\?\n\021use_exchange_pair\030\026 "
577 "\001(\0162$.operations_research.OptionalBoolea"
578 "n\022B\n\024use_exchange_subtrip\030\032 \001(\0162$.operat"
579 "ions_research.OptionalBoolean\0227\n\tuse_cro"
580 "ss\030\005 \001(\0162$.operations_research.OptionalB"
581 "oolean\022@\n\022use_cross_exchange\030\006 \001(\0162$.ope"
582 "rations_research.OptionalBoolean\022J\n\034use_"
583 "relocate_expensive_chain\030\027 \001(\0162$.operati"
584 "ons_research.OptionalBoolean\0229\n\013use_two_"
585 "opt\030\007 \001(\0162$.operations_research.Optional"
586 "Boolean\0228\n\nuse_or_opt\030\010 \001(\0162$.operations"
587 "_research.OptionalBoolean\022\?\n\021use_lin_ker"
588 "nighan\030\t \001(\0162$.operations_research.Optio"
589 "nalBoolean\0229\n\013use_tsp_opt\030\n \001(\0162$.operat"
590 "ions_research.OptionalBoolean\022=\n\017use_mak"
591 "e_active\030\013 \001(\0162$.operations_research.Opt"
592 "ionalBoolean\022J\n\034use_relocate_and_make_ac"
593 "tive\030\025 \001(\0162$.operations_research.Optiona"
594 "lBoolean\022J\n\034use_exchange_and_make_active"
595 "\030% \001(\0162$.operations_research.OptionalBoo"
596 "lean\022Z\n,use_exchange_path_start_ends_and"
597 "_make_active\030& \001(\0162$.operations_research"
598 ".OptionalBoolean\022\?\n\021use_make_inactive\030\014 "
599 "\001(\0162$.operations_research.OptionalBoolea"
600 "n\022E\n\027use_make_chain_inactive\030\r \001(\0162$.ope"
601 "rations_research.OptionalBoolean\022=\n\017use_"
602 "swap_active\030\016 \001(\0162$.operations_research."
603 "OptionalBoolean\022C\n\025use_swap_active_chain"
604 "\030# \001(\0162$.operations_research.OptionalBoo"
605 "lean\022F\n\030use_extended_swap_active\030\017 \001(\0162$"
606 ".operations_research.OptionalBoolean\022K\n\035"
607 "use_shortest_path_swap_active\030\" \001(\0162$.op"
608 "erations_research.OptionalBoolean\022G\n\031use"
609 "_shortest_path_two_opt\030$ \001(\0162$.operation"
610 "s_research.OptionalBoolean\022G\n\031use_node_p"
611 "air_swap_active\030\024 \001(\0162$.operations_resea"
612 "rch.OptionalBoolean\022:\n\014use_path_lns\030\020 \001("
613 "\0162$.operations_research.OptionalBoolean\022"
614 "\?\n\021use_full_path_lns\030\021 \001(\0162$.operations_"
615 "research.OptionalBoolean\0229\n\013use_tsp_lns\030"
616 "\022 \001(\0162$.operations_research.OptionalBool"
617 "ean\022>\n\020use_inactive_lns\030\023 \001(\0162$.operatio"
618 "ns_research.OptionalBoolean\022T\n&use_globa"
619 "l_cheapest_insertion_path_lns\030\033 \001(\0162$.op"
620 "erations_research.OptionalBoolean\022S\n%use"
621 "_local_cheapest_insertion_path_lns\030\034 \001(\016"
622 "2$.operations_research.OptionalBoolean\022l"
623 "\n>use_relocate_path_global_cheapest_inse"
624 "rtion_insert_unperformed\030! \001(\0162$.operati"
625 "ons_research.OptionalBoolean\022_\n1use_glob"
626 "al_cheapest_insertion_expensive_chain_ln"
627 "s\030\035 \001(\0162$.operations_research.OptionalBo"
628 "olean\022^\n0use_local_cheapest_insertion_ex"
629 "pensive_chain_lns\030\036 \001(\0162$.operations_res"
630 "earch.OptionalBoolean\022[\n-use_global_chea"
631 "pest_insertion_close_nodes_lns\030\037 \001(\0162$.o"
632 "perations_research.OptionalBoolean\022Z\n,us"
633 "e_local_cheapest_insertion_close_nodes_l"
634 "ns\030 \001(\0162$.operations_research.OptionalB"
635 "oolean\032u\n ImprovementSearchLimitParamete"
636 "rs\022$\n\034improvement_rate_coefficient\030& \001(\001"
637 "\022+\n#improvement_rate_solutions_distance\030"
638 "\' \001(\005\"\222\001\n\025PairInsertionStrategy\022\r\n\tAUTOM"
639 "ATIC\020\000\022\"\n\036BEST_PICKUP_THEN_BEST_DELIVERY"
640 "\020\001\022\035\n\031BEST_PICKUP_DELIVERY_PAIR\020\002\022\'\n#BES"
641 "T_PICKUP_DELIVERY_PAIR_MULTITOUR\020\003\"\307\003\n\030I"
642 "nsertionSortingProperty\022 \n\034SORTING_PROPE"
643 "RTY_UNSPECIFIED\020\000\022%\n!SORTING_PROPERTY_AL"
644 "LOWED_VEHICLES\020\001\022\034\n\030SORTING_PROPERTY_PEN"
645 "ALTY\020\002\0228\n4SORTING_PROPERTY_PENALTY_OVER_"
646 "ALLOWED_VEHICLES_RATIO\020\003\022\?\n;SORTING_PROP"
647 "ERTY_HIGHEST_AVG_ARC_COST_TO_VEHICLE_STA"
648 "RT_ENDS\020\004\022>\n:SORTING_PROPERTY_LOWEST_AVG"
649 "_ARC_COST_TO_VEHICLE_START_ENDS\020\005\022>\n:SOR"
650 "TING_PROPERTY_LOWEST_MIN_ARC_COST_TO_VEH"
651 "ICLE_START_ENDS\020\006\022,\n(SORTING_PROPERTY_HI"
652 "GHEST_DIMENSION_USAGE\020\007\022\033\n\027SORTING_PROPE"
653 "RTY_RANDOM\020\010\"T\n\020SchedulingSolver\022\024\n\020SCHE"
654 "DULING_UNSET\020\000\022\023\n\017SCHEDULING_GLOP\020\001\022\025\n\021S"
655 "CHEDULING_CP_SAT\020\002B9\n7_disable_schedulin"
656 "g_beware_this_may_degrade_performanceJ\004\010"
657 "\023\020\024J\004\010A\020B\"\250\001\n\026RoutingModelParameters\022J\n\021"
658 "solver_parameters\030\001 \001(\0132/.operations_res"
659 "earch.ConstraintSolverParameters\022!\n\031redu"
660 "ce_vehicle_cost_model\030\002 \001(\010\022\037\n\027max_callb"
661 "ack_cache_size\030\003 \001(\005BI\n#com.google.ortoo"
662 "ls.constraintsolverP\001\252\002\037Google.OrTools.C"
663 "onstraintSolverb\006proto3"
665static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL
const
667 &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
679 descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto,
680 "ortools/constraint_solver/routing_parameters.proto",
712class RoutingSearchParameters_LocalSearchNeighborhoodOperators::_Internal {
715 decltype(::std::declval<RoutingSearchParameters_LocalSearchNeighborhoodOperators>()._impl_._has_bits_);
721#if defined(PROTOBUF_CUSTOM_VTABLE)
724 : ::google::protobuf::Message(arena) {
731#if defined(PROTOBUF_CUSTOM_VTABLE)
734 : ::google::protobuf::Message(arena),
737 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
738 from._internal_metadata_);
740PROTOBUF_NDEBUG_INLINE RoutingSearchParameters_LocalSearchNeighborhoodOperators::Impl_::Impl_(
741 ::google::protobuf::internal::InternalVisibility visibility,
742 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
743 : _cached_size_{0} {}
745inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
746 new (&
_impl_) Impl_(internal_visibility(), arena);
747 ::memset(
reinterpret_cast<char *
>(&
_impl_) +
748 offsetof(Impl_, use_relocate_),
750 offsetof(Impl_, use_exchange_path_start_ends_and_make_active_) -
751 offsetof(Impl_, use_relocate_) +
752 sizeof(Impl_::use_exchange_path_start_ends_and_make_active_));
758inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor(MessageLite& self) {
760 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
761 ABSL_DCHECK(this_.GetArena() ==
nullptr);
766 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
767 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
775 return ::google::protobuf::internal::ClassDataFull{
776 ::google::protobuf::internal::ClassData{
781 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl,
782 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters_LocalSearchNeighborhoodOperators>(),
783#if defined(PROTOBUF_CUSTOM_VTABLE)
784 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor,
791 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::kDescriptorMethods,
797PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
801PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
807PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
808const ::_pbi::TcParseTable<5, 38, 0, 0, 7>
809RoutingSearchParameters_LocalSearchNeighborhoodOperators::_table_ = {
814 offsetof(
decltype(_table_), field_lookup_table),
816 offsetof(
decltype(_table_), field_entries),
819 offsetof(
decltype(_table_), field_names),
822 ::_pbi::TcParser::GenericFallback,
823 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
824 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>(),
827 {::_pbi::TcParser::MiniParse, {}},
874 {::_pbi::TcParser::FastV32S2,
877 {::_pbi::TcParser::FastV32S2,
880 {::_pbi::TcParser::FastV32S2,
883 {::_pbi::TcParser::FastV32S2,
886 {::_pbi::TcParser::FastV32S2,
889 {::_pbi::TcParser::FastV32S2,
892 {::_pbi::TcParser::FastV32S2,
895 {::_pbi::TcParser::FastV32S2,
898 {::_pbi::TcParser::FastV32S2,
901 {::_pbi::TcParser::FastV32S2,
904 {::_pbi::TcParser::FastV32S2,
907 {::_pbi::TcParser::FastV32S2,
910 {::_pbi::TcParser::FastV32S2,
913 {::_pbi::TcParser::FastV32S2,
916 {::_pbi::TcParser::FastV32S2,
919 {::_pbi::TcParser::FastV32S2,
928 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
931 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
934 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
937 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
940 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
943 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
946 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
949 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
952 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
955 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
958 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
961 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
964 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
967 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
970 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
973 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
976 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
979 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
982 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
985 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
988 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
991 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
994 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
997 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1000 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1003 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1006 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1009 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1012 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1015 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1018 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1021 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1024 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1027 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1030 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1033 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1036 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1039 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
1047 ::google::protobuf::internal::TSanWrite(&
_impl_);
1048 ::uint32_t cached_has_bits = 0;
1050 (void) cached_has_bits;
1052 cached_has_bits =
_impl_._has_bits_[0];
1053 if ((cached_has_bits & 0x000000ffu) != 0) {
1054 ::memset(&
_impl_.use_relocate_, 0,
static_cast<::
size_t>(
1055 reinterpret_cast<char*
>(&
_impl_.use_or_opt_) -
1056 reinterpret_cast<char*
>(&
_impl_.use_relocate_)) +
sizeof(
_impl_.use_or_opt_));
1058 if ((cached_has_bits & 0x0000ff00u) != 0) {
1059 ::memset(&
_impl_.use_lin_kernighan_, 0,
static_cast<::
size_t>(
1060 reinterpret_cast<char*
>(&
_impl_.use_path_lns_) -
1061 reinterpret_cast<char*
>(&
_impl_.use_lin_kernighan_)) +
sizeof(
_impl_.use_path_lns_));
1063 if ((cached_has_bits & 0x00ff0000u) != 0) {
1064 ::memset(&
_impl_.use_full_path_lns_, 0,
static_cast<::
size_t>(
1065 reinterpret_cast<char*
>(&
_impl_.use_light_relocate_pair_) -
1066 reinterpret_cast<char*
>(&
_impl_.use_full_path_lns_)) +
sizeof(
_impl_.use_light_relocate_pair_));
1068 if ((cached_has_bits & 0xff000000u) != 0) {
1069 ::memset(&
_impl_.use_relocate_subtrip_, 0,
static_cast<::
size_t>(
1070 reinterpret_cast<char*
>(&
_impl_.use_local_cheapest_insertion_close_nodes_lns_) -
1071 reinterpret_cast<char*
>(&
_impl_.use_relocate_subtrip_)) +
sizeof(
_impl_.use_local_cheapest_insertion_close_nodes_lns_));
1073 cached_has_bits =
_impl_._has_bits_[1];
1074 if ((cached_has_bits & 0x0000003fu) != 0) {
1075 ::memset(&
_impl_.use_relocate_path_global_cheapest_insertion_insert_unperformed_, 0,
static_cast<::
size_t>(
1076 reinterpret_cast<char*
>(&
_impl_.use_exchange_path_start_ends_and_make_active_) -
1077 reinterpret_cast<char*
>(&
_impl_.use_relocate_path_global_cheapest_insertion_insert_unperformed_)) +
sizeof(
_impl_.use_exchange_path_start_ends_and_make_active_));
1079 _impl_._has_bits_.Clear();
1080 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1083#if defined(PROTOBUF_CUSTOM_VTABLE)
1085 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
1086 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1090 ::uint8_t* PROTOBUF_NONNULL target,
1091 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
1095 ::uint32_t cached_has_bits = 0;
1096 (void)cached_has_bits;
1099 if ((this_.
_impl_._has_bits_[0] & 0x00000001u) != 0) {
1100 if (this_._internal_use_relocate() != 0) {
1101 target = stream->EnsureSpace(target);
1102 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1103 1, this_._internal_use_relocate(), target);
1108 if ((this_.
_impl_._has_bits_[0] & 0x00000002u) != 0) {
1109 if (this_._internal_use_relocate_pair() != 0) {
1110 target = stream->EnsureSpace(target);
1111 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1112 2, this_._internal_use_relocate_pair(), target);
1117 if ((this_.
_impl_._has_bits_[0] & 0x00000004u) != 0) {
1118 if (this_._internal_use_relocate_neighbors() != 0) {
1119 target = stream->EnsureSpace(target);
1120 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1121 3, this_._internal_use_relocate_neighbors(), target);
1126 if ((this_.
_impl_._has_bits_[0] & 0x00000008u) != 0) {
1127 if (this_._internal_use_exchange() != 0) {
1128 target = stream->EnsureSpace(target);
1129 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1130 4, this_._internal_use_exchange(), target);
1135 if ((this_.
_impl_._has_bits_[0] & 0x00000010u) != 0) {
1136 if (this_._internal_use_cross() != 0) {
1137 target = stream->EnsureSpace(target);
1138 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1139 5, this_._internal_use_cross(), target);
1144 if ((this_.
_impl_._has_bits_[0] & 0x00000020u) != 0) {
1145 if (this_._internal_use_cross_exchange() != 0) {
1146 target = stream->EnsureSpace(target);
1147 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1148 6, this_._internal_use_cross_exchange(), target);
1153 if ((this_.
_impl_._has_bits_[0] & 0x00000040u) != 0) {
1154 if (this_._internal_use_two_opt() != 0) {
1155 target = stream->EnsureSpace(target);
1156 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1157 7, this_._internal_use_two_opt(), target);
1162 if ((this_.
_impl_._has_bits_[0] & 0x00000080u) != 0) {
1163 if (this_._internal_use_or_opt() != 0) {
1164 target = stream->EnsureSpace(target);
1165 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1166 8, this_._internal_use_or_opt(), target);
1171 if ((this_.
_impl_._has_bits_[0] & 0x00000100u) != 0) {
1172 if (this_._internal_use_lin_kernighan() != 0) {
1173 target = stream->EnsureSpace(target);
1174 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1175 9, this_._internal_use_lin_kernighan(), target);
1180 if ((this_.
_impl_._has_bits_[0] & 0x00000200u) != 0) {
1181 if (this_._internal_use_tsp_opt() != 0) {
1182 target = stream->EnsureSpace(target);
1183 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1184 10, this_._internal_use_tsp_opt(), target);
1189 if ((this_.
_impl_._has_bits_[0] & 0x00000400u) != 0) {
1190 if (this_._internal_use_make_active() != 0) {
1191 target = stream->EnsureSpace(target);
1192 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1193 11, this_._internal_use_make_active(), target);
1198 if ((this_.
_impl_._has_bits_[0] & 0x00000800u) != 0) {
1199 if (this_._internal_use_make_inactive() != 0) {
1200 target = stream->EnsureSpace(target);
1201 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1202 12, this_._internal_use_make_inactive(), target);
1207 if ((this_.
_impl_._has_bits_[0] & 0x00001000u) != 0) {
1208 if (this_._internal_use_make_chain_inactive() != 0) {
1209 target = stream->EnsureSpace(target);
1210 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1211 13, this_._internal_use_make_chain_inactive(), target);
1216 if ((this_.
_impl_._has_bits_[0] & 0x00002000u) != 0) {
1217 if (this_._internal_use_swap_active() != 0) {
1218 target = stream->EnsureSpace(target);
1219 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1220 14, this_._internal_use_swap_active(), target);
1225 if ((this_.
_impl_._has_bits_[0] & 0x00004000u) != 0) {
1226 if (this_._internal_use_extended_swap_active() != 0) {
1227 target = stream->EnsureSpace(target);
1228 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1229 15, this_._internal_use_extended_swap_active(), target);
1234 if ((this_.
_impl_._has_bits_[0] & 0x00008000u) != 0) {
1235 if (this_._internal_use_path_lns() != 0) {
1236 target = stream->EnsureSpace(target);
1237 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1238 16, this_._internal_use_path_lns(), target);
1243 if ((this_.
_impl_._has_bits_[0] & 0x00010000u) != 0) {
1244 if (this_._internal_use_full_path_lns() != 0) {
1245 target = stream->EnsureSpace(target);
1246 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1247 17, this_._internal_use_full_path_lns(), target);
1252 if ((this_.
_impl_._has_bits_[0] & 0x00020000u) != 0) {
1253 if (this_._internal_use_tsp_lns() != 0) {
1254 target = stream->EnsureSpace(target);
1255 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1256 18, this_._internal_use_tsp_lns(), target);
1261 if ((this_.
_impl_._has_bits_[0] & 0x00040000u) != 0) {
1262 if (this_._internal_use_inactive_lns() != 0) {
1263 target = stream->EnsureSpace(target);
1264 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1265 19, this_._internal_use_inactive_lns(), target);
1270 if ((this_.
_impl_._has_bits_[0] & 0x00080000u) != 0) {
1271 if (this_._internal_use_node_pair_swap_active() != 0) {
1272 target = stream->EnsureSpace(target);
1273 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1274 20, this_._internal_use_node_pair_swap_active(), target);
1279 if ((this_.
_impl_._has_bits_[0] & 0x00100000u) != 0) {
1280 if (this_._internal_use_relocate_and_make_active() != 0) {
1281 target = stream->EnsureSpace(target);
1282 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1283 21, this_._internal_use_relocate_and_make_active(), target);
1288 if ((this_.
_impl_._has_bits_[0] & 0x00200000u) != 0) {
1289 if (this_._internal_use_exchange_pair() != 0) {
1290 target = stream->EnsureSpace(target);
1291 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1292 22, this_._internal_use_exchange_pair(), target);
1297 if ((this_.
_impl_._has_bits_[0] & 0x00400000u) != 0) {
1298 if (this_._internal_use_relocate_expensive_chain() != 0) {
1299 target = stream->EnsureSpace(target);
1300 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1301 23, this_._internal_use_relocate_expensive_chain(), target);
1306 if ((this_.
_impl_._has_bits_[0] & 0x00800000u) != 0) {
1307 if (this_._internal_use_light_relocate_pair() != 0) {
1308 target = stream->EnsureSpace(target);
1309 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1310 24, this_._internal_use_light_relocate_pair(), target);
1315 if ((this_.
_impl_._has_bits_[0] & 0x01000000u) != 0) {
1316 if (this_._internal_use_relocate_subtrip() != 0) {
1317 target = stream->EnsureSpace(target);
1318 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1319 25, this_._internal_use_relocate_subtrip(), target);
1324 if ((this_.
_impl_._has_bits_[0] & 0x02000000u) != 0) {
1325 if (this_._internal_use_exchange_subtrip() != 0) {
1326 target = stream->EnsureSpace(target);
1327 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1328 26, this_._internal_use_exchange_subtrip(), target);
1333 if ((this_.
_impl_._has_bits_[0] & 0x04000000u) != 0) {
1334 if (this_._internal_use_global_cheapest_insertion_path_lns() != 0) {
1335 target = stream->EnsureSpace(target);
1336 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1337 27, this_._internal_use_global_cheapest_insertion_path_lns(), target);
1342 if ((this_.
_impl_._has_bits_[0] & 0x08000000u) != 0) {
1343 if (this_._internal_use_local_cheapest_insertion_path_lns() != 0) {
1344 target = stream->EnsureSpace(target);
1345 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1346 28, this_._internal_use_local_cheapest_insertion_path_lns(), target);
1351 if ((this_.
_impl_._has_bits_[0] & 0x10000000u) != 0) {
1352 if (this_._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1353 target = stream->EnsureSpace(target);
1354 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1355 29, this_._internal_use_global_cheapest_insertion_expensive_chain_lns(), target);
1360 if ((this_.
_impl_._has_bits_[0] & 0x20000000u) != 0) {
1361 if (this_._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1362 target = stream->EnsureSpace(target);
1363 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1364 30, this_._internal_use_local_cheapest_insertion_expensive_chain_lns(), target);
1369 if ((this_.
_impl_._has_bits_[0] & 0x40000000u) != 0) {
1370 if (this_._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1371 target = stream->EnsureSpace(target);
1372 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1373 31, this_._internal_use_global_cheapest_insertion_close_nodes_lns(), target);
1378 if ((this_.
_impl_._has_bits_[0] & 0x80000000u) != 0) {
1379 if (this_._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1380 target = stream->EnsureSpace(target);
1381 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1382 32, this_._internal_use_local_cheapest_insertion_close_nodes_lns(), target);
1387 if ((this_.
_impl_._has_bits_[1] & 0x00000001u) != 0) {
1388 if (this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1389 target = stream->EnsureSpace(target);
1390 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1391 33, this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed(), target);
1396 if ((this_.
_impl_._has_bits_[1] & 0x00000002u) != 0) {
1397 if (this_._internal_use_shortest_path_swap_active() != 0) {
1398 target = stream->EnsureSpace(target);
1399 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1400 34, this_._internal_use_shortest_path_swap_active(), target);
1405 if ((this_.
_impl_._has_bits_[1] & 0x00000004u) != 0) {
1406 if (this_._internal_use_swap_active_chain() != 0) {
1407 target = stream->EnsureSpace(target);
1408 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1409 35, this_._internal_use_swap_active_chain(), target);
1414 if ((this_.
_impl_._has_bits_[1] & 0x00000008u) != 0) {
1415 if (this_._internal_use_shortest_path_two_opt() != 0) {
1416 target = stream->EnsureSpace(target);
1417 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1418 36, this_._internal_use_shortest_path_two_opt(), target);
1423 if ((this_.
_impl_._has_bits_[1] & 0x00000010u) != 0) {
1424 if (this_._internal_use_exchange_and_make_active() != 0) {
1425 target = stream->EnsureSpace(target);
1426 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1427 37, this_._internal_use_exchange_and_make_active(), target);
1432 if ((this_.
_impl_._has_bits_[1] & 0x00000020u) != 0) {
1433 if (this_._internal_use_exchange_path_start_ends_and_make_active() != 0) {
1434 target = stream->EnsureSpace(target);
1435 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1436 38, this_._internal_use_exchange_path_start_ends_and_make_active(), target);
1440 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1442 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1443 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1449#if defined(PROTOBUF_CUSTOM_VTABLE)
1457 ::size_t total_size = 0;
1459 ::uint32_t cached_has_bits = 0;
1461 (void)cached_has_bits;
1463 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1464 cached_has_bits = this_.
_impl_._has_bits_[0];
1465 if ((cached_has_bits & 0x000000ffu) != 0) {
1467 if ((cached_has_bits & 0x00000001u) != 0) {
1468 if (this_._internal_use_relocate() != 0) {
1470 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate());
1474 if ((cached_has_bits & 0x00000002u) != 0) {
1475 if (this_._internal_use_relocate_pair() != 0) {
1477 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_pair());
1481 if ((cached_has_bits & 0x00000004u) != 0) {
1482 if (this_._internal_use_relocate_neighbors() != 0) {
1484 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_neighbors());
1488 if ((cached_has_bits & 0x00000008u) != 0) {
1489 if (this_._internal_use_exchange() != 0) {
1491 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange());
1495 if ((cached_has_bits & 0x00000010u) != 0) {
1496 if (this_._internal_use_cross() != 0) {
1498 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cross());
1502 if ((cached_has_bits & 0x00000020u) != 0) {
1503 if (this_._internal_use_cross_exchange() != 0) {
1505 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cross_exchange());
1509 if ((cached_has_bits & 0x00000040u) != 0) {
1510 if (this_._internal_use_two_opt() != 0) {
1512 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_two_opt());
1516 if ((cached_has_bits & 0x00000080u) != 0) {
1517 if (this_._internal_use_or_opt() != 0) {
1519 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_or_opt());
1523 if ((cached_has_bits & 0x0000ff00u) != 0) {
1525 if ((cached_has_bits & 0x00000100u) != 0) {
1526 if (this_._internal_use_lin_kernighan() != 0) {
1528 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_lin_kernighan());
1532 if ((cached_has_bits & 0x00000200u) != 0) {
1533 if (this_._internal_use_tsp_opt() != 0) {
1535 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_tsp_opt());
1539 if ((cached_has_bits & 0x00000400u) != 0) {
1540 if (this_._internal_use_make_active() != 0) {
1542 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_active());
1546 if ((cached_has_bits & 0x00000800u) != 0) {
1547 if (this_._internal_use_make_inactive() != 0) {
1549 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_inactive());
1553 if ((cached_has_bits & 0x00001000u) != 0) {
1554 if (this_._internal_use_make_chain_inactive() != 0) {
1556 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_chain_inactive());
1560 if ((cached_has_bits & 0x00002000u) != 0) {
1561 if (this_._internal_use_swap_active() != 0) {
1563 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_swap_active());
1567 if ((cached_has_bits & 0x00004000u) != 0) {
1568 if (this_._internal_use_extended_swap_active() != 0) {
1570 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_extended_swap_active());
1574 if ((cached_has_bits & 0x00008000u) != 0) {
1575 if (this_._internal_use_path_lns() != 0) {
1577 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_path_lns());
1581 if ((cached_has_bits & 0x00ff0000u) != 0) {
1583 if ((cached_has_bits & 0x00010000u) != 0) {
1584 if (this_._internal_use_full_path_lns() != 0) {
1586 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_full_path_lns());
1590 if ((cached_has_bits & 0x00020000u) != 0) {
1591 if (this_._internal_use_tsp_lns() != 0) {
1593 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_tsp_lns());
1597 if ((cached_has_bits & 0x00040000u) != 0) {
1598 if (this_._internal_use_inactive_lns() != 0) {
1600 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_inactive_lns());
1604 if ((cached_has_bits & 0x00080000u) != 0) {
1605 if (this_._internal_use_node_pair_swap_active() != 0) {
1607 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_node_pair_swap_active());
1611 if ((cached_has_bits & 0x00100000u) != 0) {
1612 if (this_._internal_use_relocate_and_make_active() != 0) {
1614 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_and_make_active());
1618 if ((cached_has_bits & 0x00200000u) != 0) {
1619 if (this_._internal_use_exchange_pair() != 0) {
1621 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_pair());
1625 if ((cached_has_bits & 0x00400000u) != 0) {
1626 if (this_._internal_use_relocate_expensive_chain() != 0) {
1628 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_expensive_chain());
1632 if ((cached_has_bits & 0x00800000u) != 0) {
1633 if (this_._internal_use_light_relocate_pair() != 0) {
1635 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_light_relocate_pair());
1639 if ((cached_has_bits & 0xff000000u) != 0) {
1641 if ((cached_has_bits & 0x01000000u) != 0) {
1642 if (this_._internal_use_relocate_subtrip() != 0) {
1644 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_subtrip());
1648 if ((cached_has_bits & 0x02000000u) != 0) {
1649 if (this_._internal_use_exchange_subtrip() != 0) {
1651 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_subtrip());
1655 if ((cached_has_bits & 0x04000000u) != 0) {
1656 if (this_._internal_use_global_cheapest_insertion_path_lns() != 0) {
1658 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_path_lns());
1662 if ((cached_has_bits & 0x08000000u) != 0) {
1663 if (this_._internal_use_local_cheapest_insertion_path_lns() != 0) {
1665 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_path_lns());
1669 if ((cached_has_bits & 0x10000000u) != 0) {
1670 if (this_._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1672 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_expensive_chain_lns());
1676 if ((cached_has_bits & 0x20000000u) != 0) {
1677 if (this_._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1679 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_expensive_chain_lns());
1683 if ((cached_has_bits & 0x40000000u) != 0) {
1684 if (this_._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1686 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_close_nodes_lns());
1690 if ((cached_has_bits & 0x80000000u) != 0) {
1691 if (this_._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {
1693 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_close_nodes_lns());
1697 cached_has_bits = this_.
_impl_._has_bits_[1];
1698 if ((cached_has_bits & 0x0000003fu) != 0) {
1700 if ((cached_has_bits & 0x00000001u) != 0) {
1701 if (this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1703 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());
1707 if ((cached_has_bits & 0x00000002u) != 0) {
1708 if (this_._internal_use_shortest_path_swap_active() != 0) {
1710 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_shortest_path_swap_active());
1714 if ((cached_has_bits & 0x00000004u) != 0) {
1715 if (this_._internal_use_swap_active_chain() != 0) {
1717 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_swap_active_chain());
1721 if ((cached_has_bits & 0x00000008u) != 0) {
1722 if (this_._internal_use_shortest_path_two_opt() != 0) {
1724 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_shortest_path_two_opt());
1728 if ((cached_has_bits & 0x00000010u) != 0) {
1729 if (this_._internal_use_exchange_and_make_active() != 0) {
1731 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_and_make_active());
1735 if ((cached_has_bits & 0x00000020u) != 0) {
1736 if (this_._internal_use_exchange_path_start_ends_and_make_active() != 0) {
1738 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_path_start_ends_and_make_active());
1742 return this_.MaybeComputeUnknownFieldsSize(total_size,
1743 &this_.
_impl_._cached_size_);
1746void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
1750 ABSL_DCHECK_NE(&from, _this);
1751 ::uint32_t cached_has_bits = 0;
1752 (void) cached_has_bits;
1754 cached_has_bits = from.
_impl_._has_bits_[0];
1755 if ((cached_has_bits & 0x000000ffu) != 0) {
1756 if ((cached_has_bits & 0x00000001u) != 0) {
1757 if (from._internal_use_relocate() != 0) {
1758 _this->_impl_.use_relocate_ = from.
_impl_.use_relocate_;
1761 if ((cached_has_bits & 0x00000002u) != 0) {
1762 if (from._internal_use_relocate_pair() != 0) {
1763 _this->_impl_.use_relocate_pair_ = from.
_impl_.use_relocate_pair_;
1766 if ((cached_has_bits & 0x00000004u) != 0) {
1767 if (from._internal_use_relocate_neighbors() != 0) {
1768 _this->_impl_.use_relocate_neighbors_ = from.
_impl_.use_relocate_neighbors_;
1771 if ((cached_has_bits & 0x00000008u) != 0) {
1772 if (from._internal_use_exchange() != 0) {
1773 _this->_impl_.use_exchange_ = from.
_impl_.use_exchange_;
1776 if ((cached_has_bits & 0x00000010u) != 0) {
1777 if (from._internal_use_cross() != 0) {
1778 _this->_impl_.use_cross_ = from.
_impl_.use_cross_;
1781 if ((cached_has_bits & 0x00000020u) != 0) {
1782 if (from._internal_use_cross_exchange() != 0) {
1783 _this->_impl_.use_cross_exchange_ = from.
_impl_.use_cross_exchange_;
1786 if ((cached_has_bits & 0x00000040u) != 0) {
1787 if (from._internal_use_two_opt() != 0) {
1788 _this->_impl_.use_two_opt_ = from.
_impl_.use_two_opt_;
1791 if ((cached_has_bits & 0x00000080u) != 0) {
1792 if (from._internal_use_or_opt() != 0) {
1793 _this->_impl_.use_or_opt_ = from.
_impl_.use_or_opt_;
1797 if ((cached_has_bits & 0x0000ff00u) != 0) {
1798 if ((cached_has_bits & 0x00000100u) != 0) {
1799 if (from._internal_use_lin_kernighan() != 0) {
1800 _this->_impl_.use_lin_kernighan_ = from.
_impl_.use_lin_kernighan_;
1803 if ((cached_has_bits & 0x00000200u) != 0) {
1804 if (from._internal_use_tsp_opt() != 0) {
1805 _this->_impl_.use_tsp_opt_ = from.
_impl_.use_tsp_opt_;
1808 if ((cached_has_bits & 0x00000400u) != 0) {
1809 if (from._internal_use_make_active() != 0) {
1810 _this->_impl_.use_make_active_ = from.
_impl_.use_make_active_;
1813 if ((cached_has_bits & 0x00000800u) != 0) {
1814 if (from._internal_use_make_inactive() != 0) {
1815 _this->_impl_.use_make_inactive_ = from.
_impl_.use_make_inactive_;
1818 if ((cached_has_bits & 0x00001000u) != 0) {
1819 if (from._internal_use_make_chain_inactive() != 0) {
1820 _this->_impl_.use_make_chain_inactive_ = from.
_impl_.use_make_chain_inactive_;
1823 if ((cached_has_bits & 0x00002000u) != 0) {
1824 if (from._internal_use_swap_active() != 0) {
1825 _this->_impl_.use_swap_active_ = from.
_impl_.use_swap_active_;
1828 if ((cached_has_bits & 0x00004000u) != 0) {
1829 if (from._internal_use_extended_swap_active() != 0) {
1830 _this->_impl_.use_extended_swap_active_ = from.
_impl_.use_extended_swap_active_;
1833 if ((cached_has_bits & 0x00008000u) != 0) {
1834 if (from._internal_use_path_lns() != 0) {
1835 _this->_impl_.use_path_lns_ = from.
_impl_.use_path_lns_;
1839 if ((cached_has_bits & 0x00ff0000u) != 0) {
1840 if ((cached_has_bits & 0x00010000u) != 0) {
1841 if (from._internal_use_full_path_lns() != 0) {
1842 _this->_impl_.use_full_path_lns_ = from.
_impl_.use_full_path_lns_;
1845 if ((cached_has_bits & 0x00020000u) != 0) {
1846 if (from._internal_use_tsp_lns() != 0) {
1847 _this->_impl_.use_tsp_lns_ = from.
_impl_.use_tsp_lns_;
1850 if ((cached_has_bits & 0x00040000u) != 0) {
1851 if (from._internal_use_inactive_lns() != 0) {
1852 _this->_impl_.use_inactive_lns_ = from.
_impl_.use_inactive_lns_;
1855 if ((cached_has_bits & 0x00080000u) != 0) {
1856 if (from._internal_use_node_pair_swap_active() != 0) {
1857 _this->_impl_.use_node_pair_swap_active_ = from.
_impl_.use_node_pair_swap_active_;
1860 if ((cached_has_bits & 0x00100000u) != 0) {
1861 if (from._internal_use_relocate_and_make_active() != 0) {
1862 _this->_impl_.use_relocate_and_make_active_ = from.
_impl_.use_relocate_and_make_active_;
1865 if ((cached_has_bits & 0x00200000u) != 0) {
1866 if (from._internal_use_exchange_pair() != 0) {
1867 _this->_impl_.use_exchange_pair_ = from.
_impl_.use_exchange_pair_;
1870 if ((cached_has_bits & 0x00400000u) != 0) {
1871 if (from._internal_use_relocate_expensive_chain() != 0) {
1872 _this->_impl_.use_relocate_expensive_chain_ = from.
_impl_.use_relocate_expensive_chain_;
1875 if ((cached_has_bits & 0x00800000u) != 0) {
1876 if (from._internal_use_light_relocate_pair() != 0) {
1877 _this->_impl_.use_light_relocate_pair_ = from.
_impl_.use_light_relocate_pair_;
1881 if ((cached_has_bits & 0xff000000u) != 0) {
1882 if ((cached_has_bits & 0x01000000u) != 0) {
1883 if (from._internal_use_relocate_subtrip() != 0) {
1884 _this->_impl_.use_relocate_subtrip_ = from.
_impl_.use_relocate_subtrip_;
1887 if ((cached_has_bits & 0x02000000u) != 0) {
1888 if (from._internal_use_exchange_subtrip() != 0) {
1889 _this->_impl_.use_exchange_subtrip_ = from.
_impl_.use_exchange_subtrip_;
1892 if ((cached_has_bits & 0x04000000u) != 0) {
1893 if (from._internal_use_global_cheapest_insertion_path_lns() != 0) {
1894 _this->_impl_.use_global_cheapest_insertion_path_lns_ = from.
_impl_.use_global_cheapest_insertion_path_lns_;
1897 if ((cached_has_bits & 0x08000000u) != 0) {
1898 if (from._internal_use_local_cheapest_insertion_path_lns() != 0) {
1899 _this->_impl_.use_local_cheapest_insertion_path_lns_ = from.
_impl_.use_local_cheapest_insertion_path_lns_;
1902 if ((cached_has_bits & 0x10000000u) != 0) {
1903 if (from._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {
1904 _this->_impl_.use_global_cheapest_insertion_expensive_chain_lns_ = from.
_impl_.use_global_cheapest_insertion_expensive_chain_lns_;
1907 if ((cached_has_bits & 0x20000000u) != 0) {
1908 if (from._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {
1909 _this->_impl_.use_local_cheapest_insertion_expensive_chain_lns_ = from.
_impl_.use_local_cheapest_insertion_expensive_chain_lns_;
1912 if ((cached_has_bits & 0x40000000u) != 0) {
1913 if (from._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {
1914 _this->_impl_.use_global_cheapest_insertion_close_nodes_lns_ = from.
_impl_.use_global_cheapest_insertion_close_nodes_lns_;
1917 if ((cached_has_bits & 0x80000000u) != 0) {
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_;
1923 cached_has_bits = from.
_impl_._has_bits_[1];
1924 if ((cached_has_bits & 0x0000003fu) != 0) {
1925 if ((cached_has_bits & 0x00000001u) != 0) {
1926 if (from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {
1927 _this->_impl_.use_relocate_path_global_cheapest_insertion_insert_unperformed_ = from.
_impl_.use_relocate_path_global_cheapest_insertion_insert_unperformed_;
1930 if ((cached_has_bits & 0x00000002u) != 0) {
1931 if (from._internal_use_shortest_path_swap_active() != 0) {
1932 _this->_impl_.use_shortest_path_swap_active_ = from.
_impl_.use_shortest_path_swap_active_;
1935 if ((cached_has_bits & 0x00000004u) != 0) {
1936 if (from._internal_use_swap_active_chain() != 0) {
1937 _this->_impl_.use_swap_active_chain_ = from.
_impl_.use_swap_active_chain_;
1940 if ((cached_has_bits & 0x00000008u) != 0) {
1941 if (from._internal_use_shortest_path_two_opt() != 0) {
1942 _this->_impl_.use_shortest_path_two_opt_ = from.
_impl_.use_shortest_path_two_opt_;
1945 if ((cached_has_bits & 0x00000010u) != 0) {
1946 if (from._internal_use_exchange_and_make_active() != 0) {
1947 _this->_impl_.use_exchange_and_make_active_ = from.
_impl_.use_exchange_and_make_active_;
1950 if ((cached_has_bits & 0x00000020u) != 0) {
1951 if (from._internal_use_exchange_path_start_ends_and_make_active() != 0) {
1952 _this->_impl_.use_exchange_path_start_ends_and_make_active_ = from.
_impl_.use_exchange_path_start_ends_and_make_active_;
1956 _this->_impl_._has_bits_.Or(from.
_impl_._has_bits_);
1957 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
1962 if (&from ==
this)
return;
1970 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1971 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1972 swap(
_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
1973 ::google::protobuf::internal::memswap<
1977 reinterpret_cast<char*
>(&
_impl_.use_relocate_),
1978 reinterpret_cast<char*
>(&other->_impl_.use_relocate_));
1982 return ::google::protobuf::Message::GetMetadataImpl(
GetClassData()->full());
1989 decltype(::std::declval<RoutingSearchParameters_ImprovementSearchLimitParameters>()._impl_._has_bits_);
1995#if defined(PROTOBUF_CUSTOM_VTABLE)
1998 : ::google::protobuf::Message(arena) {
2005#if defined(PROTOBUF_CUSTOM_VTABLE)
2008 : ::google::protobuf::Message(arena),
2011 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2012 from._internal_metadata_);
2014PROTOBUF_NDEBUG_INLINE RoutingSearchParameters_ImprovementSearchLimitParameters::Impl_::Impl_(
2015 ::google::protobuf::internal::InternalVisibility visibility,
2016 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2017 : _cached_size_{0} {}
2019inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2020 new (&
_impl_) Impl_(internal_visibility(), arena);
2021 ::memset(
reinterpret_cast<char *
>(&
_impl_) +
2022 offsetof(Impl_, improvement_rate_coefficient_),
2024 offsetof(Impl_, improvement_rate_solutions_distance_) -
2025 offsetof(Impl_, improvement_rate_coefficient_) +
2026 sizeof(Impl_::improvement_rate_solutions_distance_));
2032inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor(MessageLite& self) {
2034 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2035 ABSL_DCHECK(this_.GetArena() ==
nullptr);
2040 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
2041 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2049 return ::google::protobuf::internal::ClassDataFull{
2050 ::google::protobuf::internal::ClassData{
2055 &RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl,
2056 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters_ImprovementSearchLimitParameters>(),
2057#if defined(PROTOBUF_CUSTOM_VTABLE)
2058 &RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor,
2065 &RoutingSearchParameters_ImprovementSearchLimitParameters::kDescriptorMethods,
2071PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2075PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2081PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2082const ::_pbi::TcParseTable<1, 2, 0, 0, 7>
2083RoutingSearchParameters_ImprovementSearchLimitParameters::_table_ = {
2088 offsetof(
decltype(_table_), field_lookup_table),
2090 offsetof(
decltype(_table_), field_entries),
2093 offsetof(
decltype(_table_), field_names),
2096 ::_pbi::TcParser::GenericFallback,
2097 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2098 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>(),
2102 {::_pbi::TcParser::FastF64S2,
2103 {689, 0, 0, PROTOBUF_FIELD_OFFSET(RoutingSearchParameters_ImprovementSearchLimitParameters, _impl_.improvement_rate_coefficient_)}},
2105 {::_pbi::TcParser::FastV32S2,
2114 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2117 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2125 ::google::protobuf::internal::TSanWrite(&
_impl_);
2126 ::uint32_t cached_has_bits = 0;
2128 (void) cached_has_bits;
2130 cached_has_bits =
_impl_._has_bits_[0];
2131 if ((cached_has_bits & 0x00000003u) != 0) {
2132 ::memset(&
_impl_.improvement_rate_coefficient_, 0,
static_cast<::
size_t>(
2133 reinterpret_cast<char*
>(&
_impl_.improvement_rate_solutions_distance_) -
2134 reinterpret_cast<char*
>(&
_impl_.improvement_rate_coefficient_)) +
sizeof(
_impl_.improvement_rate_solutions_distance_));
2136 _impl_._has_bits_.Clear();
2137 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2140#if defined(PROTOBUF_CUSTOM_VTABLE)
2142 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2143 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2147 ::uint8_t* PROTOBUF_NONNULL target,
2148 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
2152 ::uint32_t cached_has_bits = 0;
2153 (void)cached_has_bits;
2156 if ((this_.
_impl_._has_bits_[0] & 0x00000001u) != 0) {
2157 if (::absl::bit_cast<::uint64_t>(this_._internal_improvement_rate_coefficient()) != 0) {
2158 target = stream->EnsureSpace(target);
2159 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2160 38, this_._internal_improvement_rate_coefficient(), target);
2165 if ((this_.
_impl_._has_bits_[0] & 0x00000002u) != 0) {
2166 if (this_._internal_improvement_rate_solutions_distance() != 0) {
2167 target = stream->EnsureSpace(target);
2168 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
2169 39, this_._internal_improvement_rate_solutions_distance(), target);
2173 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
2175 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
2176 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
2182#if defined(PROTOBUF_CUSTOM_VTABLE)
2190 ::size_t total_size = 0;
2192 ::uint32_t cached_has_bits = 0;
2194 (void)cached_has_bits;
2196 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
2197 cached_has_bits = this_.
_impl_._has_bits_[0];
2198 if ((cached_has_bits & 0x00000003u) != 0) {
2200 if ((cached_has_bits & 0x00000001u) != 0) {
2201 if (::absl::bit_cast<::uint64_t>(this_._internal_improvement_rate_coefficient()) != 0) {
2206 if ((cached_has_bits & 0x00000002u) != 0) {
2207 if (this_._internal_improvement_rate_solutions_distance() != 0) {
2208 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
2209 this_._internal_improvement_rate_solutions_distance());
2213 return this_.MaybeComputeUnknownFieldsSize(total_size,
2214 &this_.
_impl_._cached_size_);
2217void RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
2221 ABSL_DCHECK_NE(&from, _this);
2222 ::uint32_t cached_has_bits = 0;
2223 (void) cached_has_bits;
2225 cached_has_bits = from.
_impl_._has_bits_[0];
2226 if ((cached_has_bits & 0x00000003u) != 0) {
2227 if ((cached_has_bits & 0x00000001u) != 0) {
2228 if (::absl::bit_cast<::uint64_t>(from._internal_improvement_rate_coefficient()) != 0) {
2229 _this->_impl_.improvement_rate_coefficient_ = from.
_impl_.improvement_rate_coefficient_;
2232 if ((cached_has_bits & 0x00000002u) != 0) {
2233 if (from._internal_improvement_rate_solutions_distance() != 0) {
2234 _this->_impl_.improvement_rate_solutions_distance_ = from.
_impl_.improvement_rate_solutions_distance_;
2238 _this->_impl_._has_bits_[0] |= cached_has_bits;
2239 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
2244 if (&from ==
this)
return;
2252 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2253 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
2254 ::google::protobuf::internal::memswap<
2258 reinterpret_cast<char*
>(&
_impl_.improvement_rate_coefficient_),
2259 reinterpret_cast<char*
>(&other->_impl_.improvement_rate_coefficient_));
2263 return ::google::protobuf::Message::GetMetadataImpl(
GetClassData()->full());
2270 decltype(::std::declval<RoutingSearchParameters>()._impl_._has_bits_);
2276 ::google::protobuf::internal::TSanWrite(&
_impl_);
2277 if (
_impl_.sat_parameters_ !=
nullptr)
_impl_.sat_parameters_->Clear();
2281 ::google::protobuf::internal::TSanWrite(&
_impl_);
2282 if (
_impl_.time_limit_ !=
nullptr)
_impl_.time_limit_->Clear();
2286 ::google::protobuf::internal::TSanWrite(&
_impl_);
2287 if (
_impl_.lns_time_limit_ !=
nullptr)
_impl_.lns_time_limit_->Clear();
2291 ::google::protobuf::internal::TSanWrite(&
_impl_);
2292 if (
_impl_.iterated_local_search_parameters_ !=
nullptr)
_impl_.iterated_local_search_parameters_->Clear();
2296#if defined(PROTOBUF_CUSTOM_VTABLE)
2299 : ::google::protobuf::Message(arena) {
2304PROTOBUF_NDEBUG_INLINE RoutingSearchParameters::Impl_::Impl_(
2305 ::google::protobuf::internal::InternalVisibility visibility,
2306 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
2307 const ::operations_research::RoutingSearchParameters& from_msg)
2308 : _has_bits_{from._has_bits_},
2310 local_search_metaheuristics_{visibility, arena, from.local_search_metaheuristics_},
2311 _local_search_metaheuristics_cached_byte_size_{0},
2312 local_cheapest_insertion_sorting_properties_{visibility, arena, from.local_cheapest_insertion_sorting_properties_},
2313 _local_cheapest_insertion_sorting_properties_cached_byte_size_{0},
2314 log_tag_(arena, from.log_tag_) {}
2317 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
2318 const RoutingSearchParameters& from)
2319#if defined(PROTOBUF_CUSTOM_VTABLE)
2322 : ::google::protobuf::Message(arena) {
2326 _internal_metadata_.
MergeFrom<::google::protobuf::UnknownFieldSet>(
2327 from._internal_metadata_);
2328 new (&
_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
2329 ::uint32_t cached_has_bits =
_impl_._has_bits_[0];
2330 _impl_.local_search_operators_ = ((cached_has_bits & 0x00000002u) != 0)
2331 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_search_operators_)
2333 _impl_.time_limit_ = ((cached_has_bits & 0x00000004u) != 0)
2334 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.time_limit_)
2336 _impl_.lns_time_limit_ = ((cached_has_bits & 0x00000008u) != 0)
2337 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lns_time_limit_)
2339 _impl_.improvement_limit_parameters_ = ((cached_has_bits & 0x00000010u) != 0)
2340 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.improvement_limit_parameters_)
2342 _impl_.sat_parameters_ = ((cached_has_bits & 0x00000020u) != 0)
2343 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sat_parameters_)
2345 _impl_.iterated_local_search_parameters_ = ((cached_has_bits & 0x00000040u) != 0)
2346 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.iterated_local_search_parameters_)
2348 ::memcpy(
reinterpret_cast<char *
>(&
_impl_) +
2349 offsetof(Impl_, first_solution_strategy_),
2350 reinterpret_cast<const char *
>(&from._impl_) +
2351 offsetof(Impl_, first_solution_strategy_),
2352 offsetof(Impl_, max_swap_active_chain_size_) -
2353 offsetof(Impl_, first_solution_strategy_) +
2354 sizeof(Impl_::max_swap_active_chain_size_));
2358PROTOBUF_NDEBUG_INLINE RoutingSearchParameters::Impl_::Impl_(
2359 ::google::protobuf::internal::InternalVisibility visibility,
2360 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2362 local_search_metaheuristics_{visibility, arena},
2363 _local_search_metaheuristics_cached_byte_size_{0},
2364 local_cheapest_insertion_sorting_properties_{visibility, arena},
2365 _local_cheapest_insertion_sorting_properties_cached_byte_size_{0},
2368inline void RoutingSearchParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2369 new (&
_impl_) Impl_(internal_visibility(), arena);
2370 ::memset(
reinterpret_cast<char *
>(&
_impl_) +
2371 offsetof(Impl_, local_search_operators_),
2373 offsetof(Impl_, max_swap_active_chain_size_) -
2374 offsetof(Impl_, local_search_operators_) +
2375 sizeof(Impl_::max_swap_active_chain_size_));
2381inline void RoutingSearchParameters::SharedDtor(MessageLite& self) {
2383 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2384 ABSL_DCHECK(this_.GetArena() ==
nullptr);
2385 this_.
_impl_.log_tag_.Destroy();
2386 delete this_.
_impl_.local_search_operators_;
2387 delete this_.
_impl_.time_limit_;
2388 delete this_.
_impl_.lns_time_limit_;
2389 delete this_.
_impl_.improvement_limit_parameters_;
2390 delete this_.
_impl_.sat_parameters_;
2391 delete this_.
_impl_.iterated_local_search_parameters_;
2396 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
2397 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2401 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
2404 InternalGetArenaOffset(
2408 InternalGetArenaOffset(
2411 if (arena_bits.has_value()) {
2412 return ::google::protobuf::internal::MessageCreator::CopyInit(
2413 sizeof(RoutingSearchParameters), alignof(RoutingSearchParameters), *arena_bits);
2415 return ::google::protobuf::internal::MessageCreator(&RoutingSearchParameters::PlacementNew_,
2416 sizeof(RoutingSearchParameters),
2417 alignof(RoutingSearchParameters));
2421 return ::google::protobuf::internal::ClassDataFull{
2422 ::google::protobuf::internal::ClassData{
2427 &RoutingSearchParameters::MergeImpl,
2428 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters>(),
2429#if defined(PROTOBUF_CUSTOM_VTABLE)
2430 &RoutingSearchParameters::SharedDtor,
2437 &RoutingSearchParameters::kDescriptorMethods,
2443PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2447PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2453PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2454const ::_pbi::TcParseTable<5, 59, 6, 115, 11>
2455RoutingSearchParameters::_table_ = {
2460 offsetof(
decltype(_table_), field_lookup_table),
2462 offsetof(
decltype(_table_), field_entries),
2465 offsetof(
decltype(_table_), aux_entries),
2468 ::_pbi::TcParser::GenericFallback,
2469 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2470 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters>(),
2473 {::_pbi::TcParser::MiniParse, {}},
2481 {::_pbi::TcParser::FastMtS1,
2487 {::_pbi::TcParser::FastF64S1,
2493 {::_pbi::TcParser::FastF64S1,
2499 {::_pbi::TcParser::FastMtS1,
2502 {::_pbi::TcParser::FastMtS1,
2507 {::_pbi::TcParser::MiniParse, {}},
2512 {::_pbi::TcParser::FastF64S1,
2518 {::_pbi::TcParser::FastF64S2,
2521 {::_pbi::TcParser::FastV32S2,
2524 {::_pbi::TcParser::FastF64S2,
2527 {::_pbi::TcParser::FastV32P2,
2530 {::_pbi::TcParser::FastV32S2,
2533 {::_pbi::TcParser::FastF64S2,
2536 {::_pbi::TcParser::FastF64S2,
2539 {::_pbi::TcParser::FastF64S2,
2542 {::_pbi::TcParser::FastV8S2,
2545 {::_pbi::TcParser::FastV8S2,
2547 {::_pbi::TcParser::MiniParse, {}},
2549 {::_pbi::TcParser::FastV32S2,
2552 {::_pbi::TcParser::FastV32S2,
2555 {::_pbi::TcParser::FastF64S2,
2558 {::_pbi::TcParser::FastV8S2,
2561 {::_pbi::TcParser::FastF64S2,
2572 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2575 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2578 (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2581 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2584 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2587 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2590 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2593 (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
2596 (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2599 (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2602 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2605 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2608 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2611 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2614 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2617 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2620 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2623 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2626 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2629 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2632 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2635 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2638 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2641 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2644 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2647 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2650 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2653 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2656 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2659 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2662 (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
2665 (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2668 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2671 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2674 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2677 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2680 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2683 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2686 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2689 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2692 (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2695 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2698 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2701 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2704 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2707 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2710 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2713 (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
2716 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2719 (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2722 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2725 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2728 (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2731 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2734 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2737 (0 | ::_fl::kFcRepeated | ::_fl::kPackedOpenEnum)},
2740 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2743 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2746 (0 | ::_fl::kFcRepeated | ::_fl::kPackedOpenEnum)},
2749 {::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>()},
2750 {::_pbi::TcParser::GetTable<::google::protobuf::Duration>()},
2751 {::_pbi::TcParser::GetTable<::google::protobuf::Duration>()},
2752 {::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>()},
2753 {::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>()},
2754 {::_pbi::TcParser::GetTable<::operations_research::IteratedLocalSearchParameters>()},
2757 "\53\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\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\0"
2758 "operations_research.RoutingSearchParameters"
2764 ::google::protobuf::internal::TSanWrite(&
_impl_);
2765 ::uint32_t cached_has_bits = 0;
2767 (void) cached_has_bits;
2769 _impl_.local_search_metaheuristics_.Clear();
2770 _impl_.local_cheapest_insertion_sorting_properties_.Clear();
2771 cached_has_bits =
_impl_._has_bits_[0];
2772 if ((cached_has_bits & 0x0000007fu) != 0) {
2773 if ((cached_has_bits & 0x00000001u) != 0) {
2774 _impl_.log_tag_.ClearNonDefaultToEmpty();
2776 if ((cached_has_bits & 0x00000002u) != 0) {
2777 ABSL_DCHECK(
_impl_.local_search_operators_ !=
nullptr);
2778 _impl_.local_search_operators_->Clear();
2780 if ((cached_has_bits & 0x00000004u) != 0) {
2781 ABSL_DCHECK(
_impl_.time_limit_ !=
nullptr);
2782 _impl_.time_limit_->Clear();
2784 if ((cached_has_bits & 0x00000008u) != 0) {
2785 ABSL_DCHECK(
_impl_.lns_time_limit_ !=
nullptr);
2786 _impl_.lns_time_limit_->Clear();
2788 if ((cached_has_bits & 0x00000010u) != 0) {
2789 ABSL_DCHECK(
_impl_.improvement_limit_parameters_ !=
nullptr);
2790 _impl_.improvement_limit_parameters_->Clear();
2792 if ((cached_has_bits & 0x00000020u) != 0) {
2793 ABSL_DCHECK(
_impl_.sat_parameters_ !=
nullptr);
2794 _impl_.sat_parameters_->Clear();
2796 if ((cached_has_bits & 0x00000040u) != 0) {
2797 ABSL_DCHECK(
_impl_.iterated_local_search_parameters_ !=
nullptr);
2798 _impl_.iterated_local_search_parameters_->Clear();
2801 _impl_.first_solution_strategy_ = 0;
2802 if ((cached_has_bits & 0x0000ff00u) != 0) {
2803 ::memset(&
_impl_.local_search_metaheuristic_, 0,
static_cast<::
size_t>(
2804 reinterpret_cast<char*
>(&
_impl_.log_search_) -
2805 reinterpret_cast<char*
>(&
_impl_.local_search_metaheuristic_)) +
sizeof(
_impl_.log_search_));
2807 if ((cached_has_bits & 0x00ff0000u) != 0) {
2808 ::memset(&
_impl_.number_of_solutions_to_collect_, 0,
static_cast<::
size_t>(
2809 reinterpret_cast<char*
>(&
_impl_.relocate_expensive_chain_num_arcs_to_consider_) -
2810 reinterpret_cast<char*
>(&
_impl_.number_of_solutions_to_collect_)) +
sizeof(
_impl_.relocate_expensive_chain_num_arcs_to_consider_));
2812 if ((cached_has_bits & 0xff000000u) != 0) {
2813 ::memset(&
_impl_.use_cp_sat_, 0,
static_cast<::
size_t>(
2814 reinterpret_cast<char*
>(&
_impl_.cheapest_insertion_ls_operator_neighbors_ratio_) -
2815 reinterpret_cast<char*
>(&
_impl_.use_cp_sat_)) +
sizeof(
_impl_.cheapest_insertion_ls_operator_neighbors_ratio_));
2817 cached_has_bits =
_impl_._has_bits_[1];
2818 if ((cached_has_bits & 0x000000ffu) != 0) {
2819 ::memset(&
_impl_.heuristic_expensive_chain_lns_num_arcs_to_consider_, 0,
static_cast<::
size_t>(
2820 reinterpret_cast<char*
>(&
_impl_.cheapest_insertion_ls_operator_min_neighbors_) -
2821 reinterpret_cast<char*
>(&
_impl_.heuristic_expensive_chain_lns_num_arcs_to_consider_)) +
sizeof(
_impl_.cheapest_insertion_ls_operator_min_neighbors_));
2823 if ((cached_has_bits & 0x0000ff00u) != 0) {
2824 ::memset(&
_impl_.use_generalized_cp_sat_, 0,
static_cast<::
size_t>(
2825 reinterpret_cast<char*
>(&
_impl_.ls_operator_neighbors_ratio_) -
2826 reinterpret_cast<char*
>(&
_impl_.use_generalized_cp_sat_)) +
sizeof(
_impl_.ls_operator_neighbors_ratio_));
2828 if ((cached_has_bits & 0x00ff0000u) != 0) {
2829 ::memset(&
_impl_.ls_operator_min_neighbors_, 0,
static_cast<::
size_t>(
2830 reinterpret_cast<char*
>(&
_impl_.num_max_local_optima_before_metaheuristic_switch_) -
2831 reinterpret_cast<char*
>(&
_impl_.ls_operator_min_neighbors_)) +
sizeof(
_impl_.num_max_local_optima_before_metaheuristic_switch_));
2833 _impl_.max_swap_active_chain_size_ = 0;
2834 _impl_._has_bits_.Clear();
2835 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2838#if defined(PROTOBUF_CUSTOM_VTABLE)
2840 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2841 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2845 ::uint8_t* PROTOBUF_NONNULL target,
2846 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
2850 ::uint32_t cached_has_bits = 0;
2851 (void)cached_has_bits;
2854 if ((this_.
_impl_._has_bits_[0] & 0x00000080u) != 0) {
2855 if (this_._internal_first_solution_strategy() != 0) {
2856 target = stream->EnsureSpace(target);
2857 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2858 1, this_._internal_first_solution_strategy(), target);
2863 if ((this_.
_impl_._has_bits_[0] & 0x00001000u) != 0) {
2864 if (this_._internal_use_unfiltered_first_solution_strategy() != 0) {
2865 target = stream->EnsureSpace(target);
2866 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2867 2, this_._internal_use_unfiltered_first_solution_strategy(), target);
2871 cached_has_bits = this_.
_impl_._has_bits_[0];
2873 if ((cached_has_bits & 0x00000002u) != 0) {
2874 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2880 if ((cached_has_bits & 0x00000100u) != 0) {
2881 if (this_._internal_local_search_metaheuristic() != 0) {
2882 target = stream->EnsureSpace(target);
2883 target = ::_pbi::WireFormatLite::WriteEnumToArray(
2884 4, this_._internal_local_search_metaheuristic(), target);
2889 if ((cached_has_bits & 0x00000200u) != 0) {
2890 if (::absl::bit_cast<::uint64_t>(this_._internal_guided_local_search_lambda_coefficient()) != 0) {
2891 target = stream->EnsureSpace(target);
2892 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2893 5, this_._internal_guided_local_search_lambda_coefficient(), target);
2898 if ((cached_has_bits & 0x00002000u) != 0) {
2899 if (this_._internal_use_depth_first_search() != 0) {
2900 target = stream->EnsureSpace(target);
2901 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2902 6, this_._internal_use_depth_first_search(), target);
2907 if ((cached_has_bits & 0x00000400u) != 0) {
2908 if (::absl::bit_cast<::uint64_t>(this_._internal_optimization_step()) != 0) {
2909 target = stream->EnsureSpace(target);
2910 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2911 7, this_._internal_optimization_step(), target);
2916 if ((cached_has_bits & 0x00000800u) != 0) {
2917 if (this_._internal_solution_limit() != 0) {
2919 ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<8>(
2920 stream, this_._internal_solution_limit(), target);
2925 if ((cached_has_bits & 0x00000004u) != 0) {
2926 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2927 9, *this_.
_impl_.time_limit_, this_.
_impl_.time_limit_->GetCachedSize(), target,
2932 if ((cached_has_bits & 0x00000008u) != 0) {
2933 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2934 10, *this_.
_impl_.lns_time_limit_, this_.
_impl_.lns_time_limit_->GetCachedSize(), target,
2939 if ((cached_has_bits & 0x00004000u) != 0) {
2940 if (this_._internal_use_full_propagation() != 0) {
2941 target = stream->EnsureSpace(target);
2942 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2943 11, this_._internal_use_full_propagation(), target);
2948 if ((cached_has_bits & 0x00008000u) != 0) {
2949 if (this_._internal_log_search() != 0) {
2950 target = stream->EnsureSpace(target);
2951 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2952 13, this_._internal_log_search(), target);
2957 if ((cached_has_bits & 0x00020000u) != 0) {
2958 if (::absl::bit_cast<::uint64_t>(this_._internal_savings_neighbors_ratio()) != 0) {
2959 target = stream->EnsureSpace(target);
2960 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2961 14, this_._internal_savings_neighbors_ratio(), target);
2966 if ((cached_has_bits & 0x08000000u) != 0) {
2967 if (this_._internal_savings_add_reverse_arcs() != 0) {
2968 target = stream->EnsureSpace(target);
2969 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2970 15, this_._internal_savings_add_reverse_arcs(), target);
2975 if ((cached_has_bits & 0x00040000u) != 0) {
2976 if (::absl::bit_cast<::uint64_t>(this_._internal_cheapest_insertion_farthest_seeds_ratio()) != 0) {
2977 target = stream->EnsureSpace(target);
2978 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2979 16, this_._internal_cheapest_insertion_farthest_seeds_ratio(), target);
2984 if ((cached_has_bits & 0x00010000u) != 0) {
2985 if (this_._internal_number_of_solutions_to_collect() != 0) {
2986 target = stream->EnsureSpace(target);
2987 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
2988 17, this_._internal_number_of_solutions_to_collect(), target);
2993 if ((cached_has_bits & 0x00080000u) != 0) {
2994 if (::absl::bit_cast<::uint64_t>(this_._internal_savings_arc_coefficient()) != 0) {
2995 target = stream->EnsureSpace(target);
2996 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2997 18, this_._internal_savings_arc_coefficient(), target);
3002 if ((cached_has_bits & 0x00800000u) != 0) {
3003 if (this_._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
3004 target = stream->EnsureSpace(target);
3005 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3006 20, this_._internal_relocate_expensive_chain_num_arcs_to_consider(), target);
3011 if ((cached_has_bits & 0x00100000u) != 0) {
3012 if (::absl::bit_cast<::uint64_t>(this_._internal_cheapest_insertion_first_solution_neighbors_ratio()) != 0) {
3013 target = stream->EnsureSpace(target);
3014 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3015 21, this_._internal_cheapest_insertion_first_solution_neighbors_ratio(), target);
3020 if ((cached_has_bits & 0x00200000u) != 0) {
3021 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_scaling_factor()) != 0) {
3022 target = stream->EnsureSpace(target);
3023 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3024 22, this_._internal_log_cost_scaling_factor(), target);
3029 if ((cached_has_bits & 0x00400000u) != 0) {
3030 if (::absl::bit_cast<::uint64_t>(this_._internal_savings_max_memory_usage_bytes()) != 0) {
3031 target = stream->EnsureSpace(target);
3032 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3033 23, this_._internal_savings_max_memory_usage_bytes(), target);
3038 if ((cached_has_bits & 0x01000000u) != 0) {
3039 if (this_._internal_use_cp_sat() != 0) {
3040 target = stream->EnsureSpace(target);
3041 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3042 27, this_._internal_use_cp_sat(), target);
3047 if ((cached_has_bits & 0x04000000u) != 0) {
3048 if (this_._internal_use_cp() != 0) {
3049 target = stream->EnsureSpace(target);
3050 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3051 28, this_._internal_use_cp(), target);
3056 if ((cached_has_bits & 0x02000000u) != 0) {
3057 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_offset()) != 0) {
3058 target = stream->EnsureSpace(target);
3059 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3060 29, this_._internal_log_cost_offset(), target);
3065 if ((cached_has_bits & 0x10000000u) != 0) {
3066 if (this_._internal_christofides_use_minimum_matching() != 0) {
3067 target = stream->EnsureSpace(target);
3068 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3069 30, this_._internal_christofides_use_minimum_matching(), target);
3074 if ((cached_has_bits & 0x80000000u) != 0) {
3075 if (::absl::bit_cast<::uint64_t>(this_._internal_cheapest_insertion_ls_operator_neighbors_ratio()) != 0) {
3076 target = stream->EnsureSpace(target);
3077 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3078 31, this_._internal_cheapest_insertion_ls_operator_neighbors_ratio(), target);
3083 if ((this_.
_impl_._has_bits_[1] & 0x00000001u) != 0) {
3084 if (this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
3085 target = stream->EnsureSpace(target);
3086 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3087 32, this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);
3092 if ((this_.
_impl_._has_bits_[1] & 0x00000002u) != 0) {
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);
3101 if ((this_.
_impl_._has_bits_[1] & 0x00000004u) != 0) {
3102 if (this_._internal_mixed_integer_scheduling_solver() != 0) {
3103 target = stream->EnsureSpace(target);
3104 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3105 34, this_._internal_mixed_integer_scheduling_solver(), target);
3110 if ((this_.
_impl_._has_bits_[1] & 0x00000008u) != 0) {
3111 if (this_._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
3112 target = stream->EnsureSpace(target);
3113 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3114 35, this_._internal_heuristic_close_nodes_lns_num_nodes(), target);
3119 if ((cached_has_bits & 0x00000001u) != 0) {
3120 if (!this_._internal_log_tag().empty()) {
3121 const ::std::string& _s = this_._internal_log_tag();
3122 ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
3123 _s.data(),
static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE,
"operations_research.RoutingSearchParameters.log_tag");
3124 target = stream->WriteStringMaybeAliased(36, _s, target);
3129 if ((cached_has_bits & 0x00000010u) != 0) {
3130 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3136 if ((cached_has_bits & 0x20000000u) != 0) {
3137 if (this_._internal_cheapest_insertion_add_unperformed_entries() != 0) {
3138 target = stream->EnsureSpace(target);
3139 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3140 40, this_._internal_cheapest_insertion_add_unperformed_entries(), target);
3145 if ((cached_has_bits & 0x40000000u) != 0) {
3146 if (this_._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
3147 target = stream->EnsureSpace(target);
3148 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3149 41, this_._internal_use_multi_armed_bandit_concatenate_operators(), target);
3154 if ((this_.
_impl_._has_bits_[1] & 0x00000010u) != 0) {
3155 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {
3156 target = stream->EnsureSpace(target);
3157 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3158 42, this_._internal_multi_armed_bandit_compound_operator_memory_coefficient(), target);
3163 if ((this_.
_impl_._has_bits_[1] & 0x00000020u) != 0) {
3164 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {
3165 target = stream->EnsureSpace(target);
3166 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3167 43, this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient(), target);
3172 if ((this_.
_impl_._has_bits_[1] & 0x00000040u) != 0) {
3173 if (this_._internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
3174 target = stream->EnsureSpace(target);
3175 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3176 44, this_._internal_cheapest_insertion_first_solution_min_neighbors(), target);
3181 if ((this_.
_impl_._has_bits_[1] & 0x00000080u) != 0) {
3182 if (this_._internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
3183 target = stream->EnsureSpace(target);
3184 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3185 45, this_._internal_cheapest_insertion_ls_operator_min_neighbors(), target);
3190 if ((this_.
_impl_._has_bits_[1] & 0x00000400u) != 0) {
3191 if (this_._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
3192 target = stream->EnsureSpace(target);
3193 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3194 46, this_._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization(), target);
3199 if ((this_.
_impl_._has_bits_[1] & 0x00000100u) != 0) {
3200 if (this_._internal_use_generalized_cp_sat() != 0) {
3201 target = stream->EnsureSpace(target);
3202 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3203 47, this_._internal_use_generalized_cp_sat(), target);
3208 if ((cached_has_bits & 0x00000020u) != 0) {
3209 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3215 if ((this_.
_impl_._has_bits_[1] & 0x00000200u) != 0) {
3216 if (this_._internal_local_cheapest_insertion_pickup_delivery_strategy() != 0) {
3217 target = stream->EnsureSpace(target);
3218 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3219 49, this_._internal_local_cheapest_insertion_pickup_delivery_strategy(), target);
3223 cached_has_bits = this_.
_impl_._has_bits_[1];
3225 if ((cached_has_bits & 0x00000800u) != 0) {
3226 target = stream->EnsureSpace(target);
3227 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3228 50, this_._internal_disable_scheduling_beware_this_may_degrade_performance(), target);
3232 if ((cached_has_bits & 0x00001000u) != 0) {
3233 if (this_._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {
3234 target = stream->EnsureSpace(target);
3235 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3236 51, this_._internal_guided_local_search_reset_penalties_on_new_best_solution(), target);
3241 if ((cached_has_bits & 0x00004000u) != 0) {
3242 if (this_._internal_fallback_to_cp_sat_size_threshold() != 0) {
3243 target = stream->EnsureSpace(target);
3244 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3245 52, this_._internal_fallback_to_cp_sat_size_threshold(), target);
3250 if ((cached_has_bits & 0x00008000u) != 0) {
3251 if (::absl::bit_cast<::uint64_t>(this_._internal_ls_operator_neighbors_ratio()) != 0) {
3252 target = stream->EnsureSpace(target);
3253 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3254 53, this_._internal_ls_operator_neighbors_ratio(), target);
3259 if ((cached_has_bits & 0x00010000u) != 0) {
3260 if (this_._internal_ls_operator_min_neighbors() != 0) {
3261 target = stream->EnsureSpace(target);
3262 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3263 54, this_._internal_ls_operator_min_neighbors(), target);
3268 if ((cached_has_bits & 0x00020000u) != 0) {
3269 if (this_._internal_local_cheapest_cost_insertion_pickup_delivery_strategy() != 0) {
3270 target = stream->EnsureSpace(target);
3271 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3272 55, this_._internal_local_cheapest_cost_insertion_pickup_delivery_strategy(), target);
3277 if ((cached_has_bits & 0x00002000u) != 0) {
3278 if (this_._internal_report_intermediate_cp_sat_solutions() != 0) {
3279 target = stream->EnsureSpace(target);
3280 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3281 56, this_._internal_report_intermediate_cp_sat_solutions(), target);
3286 if ((cached_has_bits & 0x00040000u) != 0) {
3287 if (::absl::bit_cast<::uint64_t>(this_._internal_secondary_ls_time_limit_ratio()) != 0) {
3288 target = stream->EnsureSpace(target);
3289 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3290 57, this_._internal_secondary_ls_time_limit_ratio(), target);
3295 if ((cached_has_bits & 0x00100000u) != 0) {
3296 if (this_._internal_use_iterated_local_search() != 0) {
3297 target = stream->EnsureSpace(target);
3298 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3299 58, this_._internal_use_iterated_local_search(), target);
3304 if ((cached_has_bits & 0x00080000u) != 0) {
3305 if (this_._internal_first_solution_optimization_period() != 0) {
3306 target = stream->EnsureSpace(target);
3307 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3308 59, this_._internal_first_solution_optimization_period(), target);
3312 cached_has_bits = this_.
_impl_._has_bits_[0];
3314 if ((cached_has_bits & 0x00000040u) != 0) {
3315 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3316 60, *this_.
_impl_.iterated_local_search_parameters_, this_.
_impl_.iterated_local_search_parameters_->
GetCachedSize(), target,
3321 if ((this_.
_impl_._has_bits_[1] & 0x00200000u) != 0) {
3322 if (this_._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {
3323 target = stream->EnsureSpace(target);
3324 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3325 61, this_._internal_guided_local_search_penalize_with_vehicle_classes(), target);
3330 if ((this_.
_impl_._has_bits_[1] & 0x00400000u) != 0) {
3331 if (this_._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {
3332 target = stream->EnsureSpace(target);
3333 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3334 62, this_._internal_use_guided_local_search_penalties_in_local_search_operators(), target);
3340 ::size_t byte_size = this_.
_impl_._local_search_metaheuristics_cached_byte_size_.Get();
3341 if (byte_size > 0) {
3342 target = stream->WriteEnumPacked(
3343 63, this_._internal_local_search_metaheuristics(), byte_size, target);
3348 if ((this_.
_impl_._has_bits_[1] & 0x00800000u) != 0) {
3349 if (this_._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {
3350 target = stream->EnsureSpace(target);
3351 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3352 64, this_._internal_num_max_local_optima_before_metaheuristic_switch(), target);
3357 if ((this_.
_impl_._has_bits_[1] & 0x01000000u) != 0) {
3358 if (this_._internal_max_swap_active_chain_size() != 0) {
3359 target = stream->EnsureSpace(target);
3360 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3361 66, this_._internal_max_swap_active_chain_size(), target);
3367 ::size_t byte_size = this_.
_impl_._local_cheapest_insertion_sorting_properties_cached_byte_size_.Get();
3368 if (byte_size > 0) {
3369 target = stream->WriteEnumPacked(
3370 67, this_._internal_local_cheapest_insertion_sorting_properties(), byte_size, target);
3374 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
3376 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
3377 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
3383#if defined(PROTOBUF_CUSTOM_VTABLE)
3391 ::size_t total_size = 0;
3393 ::uint32_t cached_has_bits = 0;
3395 (void)cached_has_bits;
3397 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
3401 total_size += ::_pbi::WireFormatLite::EnumSizeWithPackedTagSize(
3402 this_._internal_local_search_metaheuristics(), 2, this_._impl_._local_search_metaheuristics_cached_byte_size_);
3406 total_size += ::_pbi::WireFormatLite::EnumSizeWithPackedTagSize(
3407 this_._internal_local_cheapest_insertion_sorting_properties(), 2, this_._impl_._local_cheapest_insertion_sorting_properties_cached_byte_size_);
3410 cached_has_bits = this_._impl_._has_bits_[0];
3411 if ((cached_has_bits & 0x000000ffu) != 0) {
3413 if ((cached_has_bits & 0x00000001u) != 0) {
3414 if (!this_._internal_log_tag().empty()) {
3415 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
3416 this_._internal_log_tag());
3420 if ((cached_has_bits & 0x00000002u) != 0) {
3422 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_search_operators_);
3425 if ((cached_has_bits & 0x00000004u) != 0) {
3427 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.time_limit_);
3430 if ((cached_has_bits & 0x00000008u) != 0) {
3432 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.lns_time_limit_);
3435 if ((cached_has_bits & 0x00000010u) != 0) {
3437 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.improvement_limit_parameters_);
3440 if ((cached_has_bits & 0x00000020u) != 0) {
3442 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sat_parameters_);
3445 if ((cached_has_bits & 0x00000040u) != 0) {
3447 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.iterated_local_search_parameters_);
3450 if ((cached_has_bits & 0x00000080u) != 0) {
3451 if (this_._internal_first_solution_strategy() != 0) {
3453 ::_pbi::WireFormatLite::EnumSize(this_._internal_first_solution_strategy());
3457 if ((cached_has_bits & 0x0000ff00u) != 0) {
3459 if ((cached_has_bits & 0x00000100u) != 0) {
3460 if (this_._internal_local_search_metaheuristic() != 0) {
3462 ::_pbi::WireFormatLite::EnumSize(this_._internal_local_search_metaheuristic());
3466 if ((cached_has_bits & 0x00000200u) != 0) {
3467 if (::absl::bit_cast<::uint64_t>(this_._internal_guided_local_search_lambda_coefficient()) != 0) {
3472 if ((cached_has_bits & 0x00000400u) != 0) {
3473 if (::absl::bit_cast<::uint64_t>(this_._internal_optimization_step()) != 0) {
3478 if ((cached_has_bits & 0x00000800u) != 0) {
3479 if (this_._internal_solution_limit() != 0) {
3480 total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
3481 this_._internal_solution_limit());
3485 if ((cached_has_bits & 0x00001000u) != 0) {
3486 if (this_._internal_use_unfiltered_first_solution_strategy() != 0) {
3491 if ((cached_has_bits & 0x00002000u) != 0) {
3492 if (this_._internal_use_depth_first_search() != 0) {
3497 if ((cached_has_bits & 0x00004000u) != 0) {
3498 if (this_._internal_use_full_propagation() != 0) {
3503 if ((cached_has_bits & 0x00008000u) != 0) {
3504 if (this_._internal_log_search() != 0) {
3509 if ((cached_has_bits & 0x00ff0000u) != 0) {
3511 if ((cached_has_bits & 0x00010000u) != 0) {
3512 if (this_._internal_number_of_solutions_to_collect() != 0) {
3513 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3514 this_._internal_number_of_solutions_to_collect());
3518 if ((cached_has_bits & 0x00020000u) != 0) {
3519 if (::absl::bit_cast<::uint64_t>(this_._internal_savings_neighbors_ratio()) != 0) {
3524 if ((cached_has_bits & 0x00040000u) != 0) {
3525 if (::absl::bit_cast<::uint64_t>(this_._internal_cheapest_insertion_farthest_seeds_ratio()) != 0) {
3530 if ((cached_has_bits & 0x00080000u) != 0) {
3531 if (::absl::bit_cast<::uint64_t>(this_._internal_savings_arc_coefficient()) != 0) {
3536 if ((cached_has_bits & 0x00100000u) != 0) {
3537 if (::absl::bit_cast<::uint64_t>(this_._internal_cheapest_insertion_first_solution_neighbors_ratio()) != 0) {
3542 if ((cached_has_bits & 0x00200000u) != 0) {
3543 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_scaling_factor()) != 0) {
3548 if ((cached_has_bits & 0x00400000u) != 0) {
3549 if (::absl::bit_cast<::uint64_t>(this_._internal_savings_max_memory_usage_bytes()) != 0) {
3554 if ((cached_has_bits & 0x00800000u) != 0) {
3555 if (this_._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
3556 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3557 this_._internal_relocate_expensive_chain_num_arcs_to_consider());
3561 if ((cached_has_bits & 0xff000000u) != 0) {
3563 if ((cached_has_bits & 0x01000000u) != 0) {
3564 if (this_._internal_use_cp_sat() != 0) {
3566 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cp_sat());
3570 if ((cached_has_bits & 0x02000000u) != 0) {
3571 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_offset()) != 0) {
3576 if ((cached_has_bits & 0x04000000u) != 0) {
3577 if (this_._internal_use_cp() != 0) {
3579 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cp());
3583 if ((cached_has_bits & 0x08000000u) != 0) {
3584 if (this_._internal_savings_add_reverse_arcs() != 0) {
3589 if ((cached_has_bits & 0x10000000u) != 0) {
3590 if (this_._internal_christofides_use_minimum_matching() != 0) {
3595 if ((cached_has_bits & 0x20000000u) != 0) {
3596 if (this_._internal_cheapest_insertion_add_unperformed_entries() != 0) {
3601 if ((cached_has_bits & 0x40000000u) != 0) {
3602 if (this_._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
3607 if ((cached_has_bits & 0x80000000u) != 0) {
3608 if (::absl::bit_cast<::uint64_t>(this_._internal_cheapest_insertion_ls_operator_neighbors_ratio()) != 0) {
3613 cached_has_bits = this_._impl_._has_bits_[1];
3614 total_size +=
static_cast<bool>(0x00000800u & cached_has_bits) * 3;
3615 if ((cached_has_bits & 0x000000ffu) != 0) {
3617 if ((cached_has_bits & 0x00000001u) != 0) {
3618 if (this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
3619 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3620 this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());
3624 if ((cached_has_bits & 0x00000002u) != 0) {
3625 if (this_._internal_continuous_scheduling_solver() != 0) {
3627 ::_pbi::WireFormatLite::EnumSize(this_._internal_continuous_scheduling_solver());
3631 if ((cached_has_bits & 0x00000004u) != 0) {
3632 if (this_._internal_mixed_integer_scheduling_solver() != 0) {
3634 ::_pbi::WireFormatLite::EnumSize(this_._internal_mixed_integer_scheduling_solver());
3638 if ((cached_has_bits & 0x00000008u) != 0) {
3639 if (this_._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
3640 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3641 this_._internal_heuristic_close_nodes_lns_num_nodes());
3645 if ((cached_has_bits & 0x00000010u) != 0) {
3646 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {
3651 if ((cached_has_bits & 0x00000020u) != 0) {
3652 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {
3657 if ((cached_has_bits & 0x00000040u) != 0) {
3658 if (this_._internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
3659 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3660 this_._internal_cheapest_insertion_first_solution_min_neighbors());
3664 if ((cached_has_bits & 0x00000080u) != 0) {
3665 if (this_._internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
3666 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3667 this_._internal_cheapest_insertion_ls_operator_min_neighbors());
3671 if ((cached_has_bits & 0x0000f700u) != 0) {
3673 if ((cached_has_bits & 0x00000100u) != 0) {
3674 if (this_._internal_use_generalized_cp_sat() != 0) {
3676 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_generalized_cp_sat());
3680 if ((cached_has_bits & 0x00000200u) != 0) {
3681 if (this_._internal_local_cheapest_insertion_pickup_delivery_strategy() != 0) {
3683 ::_pbi::WireFormatLite::EnumSize(this_._internal_local_cheapest_insertion_pickup_delivery_strategy());
3687 if ((cached_has_bits & 0x00000400u) != 0) {
3688 if (this_._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
3693 if ((cached_has_bits & 0x00001000u) != 0) {
3694 if (this_._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {
3699 if ((cached_has_bits & 0x00002000u) != 0) {
3700 if (this_._internal_report_intermediate_cp_sat_solutions() != 0) {
3705 if ((cached_has_bits & 0x00004000u) != 0) {
3706 if (this_._internal_fallback_to_cp_sat_size_threshold() != 0) {
3707 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3708 this_._internal_fallback_to_cp_sat_size_threshold());
3712 if ((cached_has_bits & 0x00008000u) != 0) {
3713 if (::absl::bit_cast<::uint64_t>(this_._internal_ls_operator_neighbors_ratio()) != 0) {
3718 if ((cached_has_bits & 0x00ff0000u) != 0) {
3720 if ((cached_has_bits & 0x00010000u) != 0) {
3721 if (this_._internal_ls_operator_min_neighbors() != 0) {
3722 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3723 this_._internal_ls_operator_min_neighbors());
3727 if ((cached_has_bits & 0x00020000u) != 0) {
3728 if (this_._internal_local_cheapest_cost_insertion_pickup_delivery_strategy() != 0) {
3730 ::_pbi::WireFormatLite::EnumSize(this_._internal_local_cheapest_cost_insertion_pickup_delivery_strategy());
3734 if ((cached_has_bits & 0x00040000u) != 0) {
3735 if (::absl::bit_cast<::uint64_t>(this_._internal_secondary_ls_time_limit_ratio()) != 0) {
3740 if ((cached_has_bits & 0x00080000u) != 0) {
3741 if (this_._internal_first_solution_optimization_period() != 0) {
3742 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3743 this_._internal_first_solution_optimization_period());
3747 if ((cached_has_bits & 0x00100000u) != 0) {
3748 if (this_._internal_use_iterated_local_search() != 0) {
3753 if ((cached_has_bits & 0x00200000u) != 0) {
3754 if (this_._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {
3759 if ((cached_has_bits & 0x00400000u) != 0) {
3760 if (this_._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {
3765 if ((cached_has_bits & 0x00800000u) != 0) {
3766 if (this_._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {
3767 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3768 this_._internal_num_max_local_optima_before_metaheuristic_switch());
3774 if ((cached_has_bits & 0x01000000u) != 0) {
3775 if (this_._internal_max_swap_active_chain_size() != 0) {
3776 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3777 this_._internal_max_swap_active_chain_size());
3781 return this_.MaybeComputeUnknownFieldsSize(total_size,
3782 &this_._impl_._cached_size_);
3785void RoutingSearchParameters::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
3790 ABSL_DCHECK_NE(&from, _this);
3791 ::uint32_t cached_has_bits = 0;
3792 (void) cached_has_bits;
3794 _this->_internal_mutable_local_search_metaheuristics()->MergeFrom(from._internal_local_search_metaheuristics());
3795 _this->_internal_mutable_local_cheapest_insertion_sorting_properties()->MergeFrom(from._internal_local_cheapest_insertion_sorting_properties());
3796 cached_has_bits = from._impl_._has_bits_[0];
3797 if ((cached_has_bits & 0x000000ffu) != 0) {
3798 if ((cached_has_bits & 0x00000001u) != 0) {
3799 if (!from._internal_log_tag().empty()) {
3800 _this->_internal_set_log_tag(from._internal_log_tag());
3802 if (_this->_impl_.log_tag_.IsDefault()) {
3803 _this->_internal_set_log_tag(
"");
3807 if ((cached_has_bits & 0x00000002u) != 0) {
3808 ABSL_DCHECK(from._impl_.local_search_operators_ !=
nullptr);
3809 if (_this->_impl_.local_search_operators_ ==
nullptr) {
3810 _this->_impl_.local_search_operators_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_search_operators_);
3812 _this->_impl_.local_search_operators_->MergeFrom(*from._impl_.local_search_operators_);
3815 if ((cached_has_bits & 0x00000004u) != 0) {
3816 ABSL_DCHECK(from._impl_.time_limit_ !=
nullptr);
3817 if (_this->_impl_.time_limit_ ==
nullptr) {
3818 _this->_impl_.time_limit_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.time_limit_);
3820 _this->_impl_.time_limit_->MergeFrom(*from._impl_.time_limit_);
3823 if ((cached_has_bits & 0x00000008u) != 0) {
3824 ABSL_DCHECK(from._impl_.lns_time_limit_ !=
nullptr);
3825 if (_this->_impl_.lns_time_limit_ ==
nullptr) {
3826 _this->_impl_.lns_time_limit_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lns_time_limit_);
3828 _this->_impl_.lns_time_limit_->MergeFrom(*from._impl_.lns_time_limit_);
3831 if ((cached_has_bits & 0x00000010u) != 0) {
3832 ABSL_DCHECK(from._impl_.improvement_limit_parameters_ !=
nullptr);
3833 if (_this->_impl_.improvement_limit_parameters_ ==
nullptr) {
3834 _this->_impl_.improvement_limit_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.improvement_limit_parameters_);
3836 _this->_impl_.improvement_limit_parameters_->MergeFrom(*from._impl_.improvement_limit_parameters_);
3839 if ((cached_has_bits & 0x00000020u) != 0) {
3840 ABSL_DCHECK(from._impl_.sat_parameters_ !=
nullptr);
3841 if (_this->_impl_.sat_parameters_ ==
nullptr) {
3842 _this->_impl_.sat_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sat_parameters_);
3844 _this->_impl_.sat_parameters_->MergeFrom(*from._impl_.sat_parameters_);
3847 if ((cached_has_bits & 0x00000040u) != 0) {
3848 ABSL_DCHECK(from._impl_.iterated_local_search_parameters_ !=
nullptr);
3849 if (_this->_impl_.iterated_local_search_parameters_ ==
nullptr) {
3850 _this->_impl_.iterated_local_search_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.iterated_local_search_parameters_);
3852 _this->_impl_.iterated_local_search_parameters_->MergeFrom(*from._impl_.iterated_local_search_parameters_);
3855 if ((cached_has_bits & 0x00000080u) != 0) {
3856 if (from._internal_first_solution_strategy() != 0) {
3857 _this->_impl_.first_solution_strategy_ = from._impl_.first_solution_strategy_;
3861 if ((cached_has_bits & 0x0000ff00u) != 0) {
3862 if ((cached_has_bits & 0x00000100u) != 0) {
3863 if (from._internal_local_search_metaheuristic() != 0) {
3864 _this->_impl_.local_search_metaheuristic_ = from._impl_.local_search_metaheuristic_;
3867 if ((cached_has_bits & 0x00000200u) != 0) {
3868 if (::absl::bit_cast<::uint64_t>(from._internal_guided_local_search_lambda_coefficient()) != 0) {
3869 _this->_impl_.guided_local_search_lambda_coefficient_ = from._impl_.guided_local_search_lambda_coefficient_;
3872 if ((cached_has_bits & 0x00000400u) != 0) {
3873 if (::absl::bit_cast<::uint64_t>(from._internal_optimization_step()) != 0) {
3874 _this->_impl_.optimization_step_ = from._impl_.optimization_step_;
3877 if ((cached_has_bits & 0x00000800u) != 0) {
3878 if (from._internal_solution_limit() != 0) {
3879 _this->_impl_.solution_limit_ = from._impl_.solution_limit_;
3882 if ((cached_has_bits & 0x00001000u) != 0) {
3883 if (from._internal_use_unfiltered_first_solution_strategy() != 0) {
3884 _this->_impl_.use_unfiltered_first_solution_strategy_ = from._impl_.use_unfiltered_first_solution_strategy_;
3887 if ((cached_has_bits & 0x00002000u) != 0) {
3888 if (from._internal_use_depth_first_search() != 0) {
3889 _this->_impl_.use_depth_first_search_ = from._impl_.use_depth_first_search_;
3892 if ((cached_has_bits & 0x00004000u) != 0) {
3893 if (from._internal_use_full_propagation() != 0) {
3894 _this->_impl_.use_full_propagation_ = from._impl_.use_full_propagation_;
3897 if ((cached_has_bits & 0x00008000u) != 0) {
3898 if (from._internal_log_search() != 0) {
3899 _this->_impl_.log_search_ = from._impl_.log_search_;
3903 if ((cached_has_bits & 0x00ff0000u) != 0) {
3904 if ((cached_has_bits & 0x00010000u) != 0) {
3905 if (from._internal_number_of_solutions_to_collect() != 0) {
3906 _this->_impl_.number_of_solutions_to_collect_ = from._impl_.number_of_solutions_to_collect_;
3909 if ((cached_has_bits & 0x00020000u) != 0) {
3910 if (::absl::bit_cast<::uint64_t>(from._internal_savings_neighbors_ratio()) != 0) {
3911 _this->_impl_.savings_neighbors_ratio_ = from._impl_.savings_neighbors_ratio_;
3914 if ((cached_has_bits & 0x00040000u) != 0) {
3915 if (::absl::bit_cast<::uint64_t>(from._internal_cheapest_insertion_farthest_seeds_ratio()) != 0) {
3916 _this->_impl_.cheapest_insertion_farthest_seeds_ratio_ = from._impl_.cheapest_insertion_farthest_seeds_ratio_;
3919 if ((cached_has_bits & 0x00080000u) != 0) {
3920 if (::absl::bit_cast<::uint64_t>(from._internal_savings_arc_coefficient()) != 0) {
3921 _this->_impl_.savings_arc_coefficient_ = from._impl_.savings_arc_coefficient_;
3924 if ((cached_has_bits & 0x00100000u) != 0) {
3925 if (::absl::bit_cast<::uint64_t>(from._internal_cheapest_insertion_first_solution_neighbors_ratio()) != 0) {
3926 _this->_impl_.cheapest_insertion_first_solution_neighbors_ratio_ = from._impl_.cheapest_insertion_first_solution_neighbors_ratio_;
3929 if ((cached_has_bits & 0x00200000u) != 0) {
3930 if (::absl::bit_cast<::uint64_t>(from._internal_log_cost_scaling_factor()) != 0) {
3931 _this->_impl_.log_cost_scaling_factor_ = from._impl_.log_cost_scaling_factor_;
3934 if ((cached_has_bits & 0x00400000u) != 0) {
3935 if (::absl::bit_cast<::uint64_t>(from._internal_savings_max_memory_usage_bytes()) != 0) {
3936 _this->_impl_.savings_max_memory_usage_bytes_ = from._impl_.savings_max_memory_usage_bytes_;
3939 if ((cached_has_bits & 0x00800000u) != 0) {
3940 if (from._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {
3941 _this->_impl_.relocate_expensive_chain_num_arcs_to_consider_ = from._impl_.relocate_expensive_chain_num_arcs_to_consider_;
3945 if ((cached_has_bits & 0xff000000u) != 0) {
3946 if ((cached_has_bits & 0x01000000u) != 0) {
3947 if (from._internal_use_cp_sat() != 0) {
3948 _this->_impl_.use_cp_sat_ = from._impl_.use_cp_sat_;
3951 if ((cached_has_bits & 0x02000000u) != 0) {
3952 if (::absl::bit_cast<::uint64_t>(from._internal_log_cost_offset()) != 0) {
3953 _this->_impl_.log_cost_offset_ = from._impl_.log_cost_offset_;
3956 if ((cached_has_bits & 0x04000000u) != 0) {
3957 if (from._internal_use_cp() != 0) {
3958 _this->_impl_.use_cp_ = from._impl_.use_cp_;
3961 if ((cached_has_bits & 0x08000000u) != 0) {
3962 if (from._internal_savings_add_reverse_arcs() != 0) {
3963 _this->_impl_.savings_add_reverse_arcs_ = from._impl_.savings_add_reverse_arcs_;
3966 if ((cached_has_bits & 0x10000000u) != 0) {
3967 if (from._internal_christofides_use_minimum_matching() != 0) {
3968 _this->_impl_.christofides_use_minimum_matching_ = from._impl_.christofides_use_minimum_matching_;
3971 if ((cached_has_bits & 0x20000000u) != 0) {
3972 if (from._internal_cheapest_insertion_add_unperformed_entries() != 0) {
3973 _this->_impl_.cheapest_insertion_add_unperformed_entries_ = from._impl_.cheapest_insertion_add_unperformed_entries_;
3976 if ((cached_has_bits & 0x40000000u) != 0) {
3977 if (from._internal_use_multi_armed_bandit_concatenate_operators() != 0) {
3978 _this->_impl_.use_multi_armed_bandit_concatenate_operators_ = from._impl_.use_multi_armed_bandit_concatenate_operators_;
3981 if ((cached_has_bits & 0x80000000u) != 0) {
3982 if (::absl::bit_cast<::uint64_t>(from._internal_cheapest_insertion_ls_operator_neighbors_ratio()) != 0) {
3983 _this->_impl_.cheapest_insertion_ls_operator_neighbors_ratio_ = from._impl_.cheapest_insertion_ls_operator_neighbors_ratio_;
3987 cached_has_bits = from._impl_._has_bits_[1];
3988 if ((cached_has_bits & 0x000000ffu) != 0) {
3989 if ((cached_has_bits & 0x00000001u) != 0) {
3990 if (from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {
3991 _this->_impl_.heuristic_expensive_chain_lns_num_arcs_to_consider_ = from._impl_.heuristic_expensive_chain_lns_num_arcs_to_consider_;
3994 if ((cached_has_bits & 0x00000002u) != 0) {
3995 if (from._internal_continuous_scheduling_solver() != 0) {
3996 _this->_impl_.continuous_scheduling_solver_ = from._impl_.continuous_scheduling_solver_;
3999 if ((cached_has_bits & 0x00000004u) != 0) {
4000 if (from._internal_mixed_integer_scheduling_solver() != 0) {
4001 _this->_impl_.mixed_integer_scheduling_solver_ = from._impl_.mixed_integer_scheduling_solver_;
4004 if ((cached_has_bits & 0x00000008u) != 0) {
4005 if (from._internal_heuristic_close_nodes_lns_num_nodes() != 0) {
4006 _this->_impl_.heuristic_close_nodes_lns_num_nodes_ = from._impl_.heuristic_close_nodes_lns_num_nodes_;
4009 if ((cached_has_bits & 0x00000010u) != 0) {
4010 if (::absl::bit_cast<::uint64_t>(from._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {
4011 _this->_impl_.multi_armed_bandit_compound_operator_memory_coefficient_ = from._impl_.multi_armed_bandit_compound_operator_memory_coefficient_;
4014 if ((cached_has_bits & 0x00000020u) != 0) {
4015 if (::absl::bit_cast<::uint64_t>(from._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {
4016 _this->_impl_.multi_armed_bandit_compound_operator_exploration_coefficient_ = from._impl_.multi_armed_bandit_compound_operator_exploration_coefficient_;
4019 if ((cached_has_bits & 0x00000040u) != 0) {
4020 if (from._internal_cheapest_insertion_first_solution_min_neighbors() != 0) {
4021 _this->_impl_.cheapest_insertion_first_solution_min_neighbors_ = from._impl_.cheapest_insertion_first_solution_min_neighbors_;
4024 if ((cached_has_bits & 0x00000080u) != 0) {
4025 if (from._internal_cheapest_insertion_ls_operator_min_neighbors() != 0) {
4026 _this->_impl_.cheapest_insertion_ls_operator_min_neighbors_ = from._impl_.cheapest_insertion_ls_operator_min_neighbors_;
4030 if ((cached_has_bits & 0x0000ff00u) != 0) {
4031 if ((cached_has_bits & 0x00000100u) != 0) {
4032 if (from._internal_use_generalized_cp_sat() != 0) {
4033 _this->_impl_.use_generalized_cp_sat_ = from._impl_.use_generalized_cp_sat_;
4036 if ((cached_has_bits & 0x00000200u) != 0) {
4037 if (from._internal_local_cheapest_insertion_pickup_delivery_strategy() != 0) {
4038 _this->_impl_.local_cheapest_insertion_pickup_delivery_strategy_ = from._impl_.local_cheapest_insertion_pickup_delivery_strategy_;
4041 if ((cached_has_bits & 0x00000400u) != 0) {
4042 if (from._internal_cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization() != 0) {
4043 _this->_impl_.cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_ = from._impl_.cheapest_insertion_first_solution_use_neighbors_ratio_for_initialization_;
4046 if ((cached_has_bits & 0x00000800u) != 0) {
4047 _this->_impl_.disable_scheduling_beware_this_may_degrade_performance_ = from._impl_.disable_scheduling_beware_this_may_degrade_performance_;
4049 if ((cached_has_bits & 0x00001000u) != 0) {
4050 if (from._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {
4051 _this->_impl_.guided_local_search_reset_penalties_on_new_best_solution_ = from._impl_.guided_local_search_reset_penalties_on_new_best_solution_;
4054 if ((cached_has_bits & 0x00002000u) != 0) {
4055 if (from._internal_report_intermediate_cp_sat_solutions() != 0) {
4056 _this->_impl_.report_intermediate_cp_sat_solutions_ = from._impl_.report_intermediate_cp_sat_solutions_;
4059 if ((cached_has_bits & 0x00004000u) != 0) {
4060 if (from._internal_fallback_to_cp_sat_size_threshold() != 0) {
4061 _this->_impl_.fallback_to_cp_sat_size_threshold_ = from._impl_.fallback_to_cp_sat_size_threshold_;
4064 if ((cached_has_bits & 0x00008000u) != 0) {
4065 if (::absl::bit_cast<::uint64_t>(from._internal_ls_operator_neighbors_ratio()) != 0) {
4066 _this->_impl_.ls_operator_neighbors_ratio_ = from._impl_.ls_operator_neighbors_ratio_;
4070 if ((cached_has_bits & 0x00ff0000u) != 0) {
4071 if ((cached_has_bits & 0x00010000u) != 0) {
4072 if (from._internal_ls_operator_min_neighbors() != 0) {
4073 _this->_impl_.ls_operator_min_neighbors_ = from._impl_.ls_operator_min_neighbors_;
4076 if ((cached_has_bits & 0x00020000u) != 0) {
4077 if (from._internal_local_cheapest_cost_insertion_pickup_delivery_strategy() != 0) {
4078 _this->_impl_.local_cheapest_cost_insertion_pickup_delivery_strategy_ = from._impl_.local_cheapest_cost_insertion_pickup_delivery_strategy_;
4081 if ((cached_has_bits & 0x00040000u) != 0) {
4082 if (::absl::bit_cast<::uint64_t>(from._internal_secondary_ls_time_limit_ratio()) != 0) {
4083 _this->_impl_.secondary_ls_time_limit_ratio_ = from._impl_.secondary_ls_time_limit_ratio_;
4086 if ((cached_has_bits & 0x00080000u) != 0) {
4087 if (from._internal_first_solution_optimization_period() != 0) {
4088 _this->_impl_.first_solution_optimization_period_ = from._impl_.first_solution_optimization_period_;
4091 if ((cached_has_bits & 0x00100000u) != 0) {
4092 if (from._internal_use_iterated_local_search() != 0) {
4093 _this->_impl_.use_iterated_local_search_ = from._impl_.use_iterated_local_search_;
4096 if ((cached_has_bits & 0x00200000u) != 0) {
4097 if (from._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {
4098 _this->_impl_.guided_local_search_penalize_with_vehicle_classes_ = from._impl_.guided_local_search_penalize_with_vehicle_classes_;
4101 if ((cached_has_bits & 0x00400000u) != 0) {
4102 if (from._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {
4103 _this->_impl_.use_guided_local_search_penalties_in_local_search_operators_ = from._impl_.use_guided_local_search_penalties_in_local_search_operators_;
4106 if ((cached_has_bits & 0x00800000u) != 0) {
4107 if (from._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {
4108 _this->_impl_.num_max_local_optima_before_metaheuristic_switch_ = from._impl_.num_max_local_optima_before_metaheuristic_switch_;
4112 if ((cached_has_bits & 0x01000000u) != 0) {
4113 if (from._internal_max_swap_active_chain_size() != 0) {
4114 _this->_impl_.max_swap_active_chain_size_ = from._impl_.max_swap_active_chain_size_;
4117 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
4118 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
4123 if (&from ==
this)
return;
4129void RoutingSearchParameters::InternalSwap(
RoutingSearchParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
4131 auto* arena = GetArena();
4132 ABSL_DCHECK_EQ(arena, other->GetArena());
4133 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4134 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
4135 swap(
_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
4136 _impl_.local_search_metaheuristics_.InternalSwap(&other->_impl_.local_search_metaheuristics_);
4137 _impl_.local_cheapest_insertion_sorting_properties_.InternalSwap(&other->_impl_.local_cheapest_insertion_sorting_properties_);
4138 ::_pbi::ArenaStringPtr::InternalSwap(&
_impl_.log_tag_, &other->_impl_.log_tag_, arena);
4139 ::google::protobuf::internal::memswap<
4143 reinterpret_cast<char*
>(&
_impl_.local_search_operators_),
4144 reinterpret_cast<char*
>(&other->_impl_.local_search_operators_));
4148 return ::google::protobuf::Message::GetMetadataImpl(
GetClassData()->full());
4155 decltype(::std::declval<RoutingModelParameters>()._impl_._has_bits_);
4161 ::google::protobuf::internal::TSanWrite(&
_impl_);
4162 if (
_impl_.solver_parameters_ !=
nullptr)
_impl_.solver_parameters_->Clear();
4163 _impl_._has_bits_[0] &= ~0x00000001u;
4166#if defined(PROTOBUF_CUSTOM_VTABLE)
4169 : ::google::protobuf::Message(arena) {
4174PROTOBUF_NDEBUG_INLINE RoutingModelParameters::Impl_::Impl_(
4175 ::google::protobuf::internal::InternalVisibility visibility,
4176 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
4177 const ::operations_research::RoutingModelParameters& from_msg)
4178 : _has_bits_{from._has_bits_},
4182 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
4183 const RoutingModelParameters& from)
4184#if defined(PROTOBUF_CUSTOM_VTABLE)
4187 : ::google::protobuf::Message(arena) {
4191 _internal_metadata_.
MergeFrom<::google::protobuf::UnknownFieldSet>(
4192 from._internal_metadata_);
4193 new (&
_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
4194 ::uint32_t cached_has_bits =
_impl_._has_bits_[0];
4195 _impl_.solver_parameters_ = ((cached_has_bits & 0x00000001u) != 0)
4196 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.solver_parameters_)
4198 ::memcpy(
reinterpret_cast<char *
>(&
_impl_) +
4199 offsetof(Impl_, reduce_vehicle_cost_model_),
4200 reinterpret_cast<const char *
>(&from._impl_) +
4201 offsetof(Impl_, reduce_vehicle_cost_model_),
4202 offsetof(Impl_, max_callback_cache_size_) -
4203 offsetof(Impl_, reduce_vehicle_cost_model_) +
4204 sizeof(Impl_::max_callback_cache_size_));
4208PROTOBUF_NDEBUG_INLINE RoutingModelParameters::Impl_::Impl_(
4209 ::google::protobuf::internal::InternalVisibility visibility,
4210 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
4211 : _cached_size_{0} {}
4213inline void RoutingModelParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
4214 new (&
_impl_) Impl_(internal_visibility(), arena);
4215 ::memset(
reinterpret_cast<char *
>(&
_impl_) +
4216 offsetof(Impl_, solver_parameters_),
4218 offsetof(Impl_, max_callback_cache_size_) -
4219 offsetof(Impl_, solver_parameters_) +
4220 sizeof(Impl_::max_callback_cache_size_));
4228 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
4229 ABSL_DCHECK(this_.GetArena() ==
nullptr);
4230 delete this_.
_impl_.solver_parameters_;
4235 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
4236 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
4244 return ::google::protobuf::internal::ClassDataFull{
4245 ::google::protobuf::internal::ClassData{
4250 &RoutingModelParameters::MergeImpl,
4251 ::google::protobuf::Message::GetNewImpl<RoutingModelParameters>(),
4252#if defined(PROTOBUF_CUSTOM_VTABLE)
4253 &RoutingModelParameters::SharedDtor,
4260 &RoutingModelParameters::kDescriptorMethods,
4266PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
4270PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
4276PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
4277const ::_pbi::TcParseTable<2, 3, 1, 0, 2>
4278RoutingModelParameters::_table_ = {
4283 offsetof(
decltype(_table_), field_lookup_table),
4285 offsetof(
decltype(_table_), field_entries),
4288 offsetof(
decltype(_table_), aux_entries),
4291 ::_pbi::TcParser::GenericFallback,
4292 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
4293 ::_pbi::TcParser::GetTable<::operations_research::RoutingModelParameters>(),
4296 {::_pbi::TcParser::MiniParse, {}},
4298 {::_pbi::TcParser::FastMtS1,
4301 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(
RoutingModelParameters, _impl_.reduce_vehicle_cost_model_), 1>(),
4304 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
RoutingModelParameters, _impl_.max_callback_cache_size_), 2>(),
4310 {PROTOBUF_FIELD_OFFSET(
RoutingModelParameters, _impl_.solver_parameters_), _Internal::kHasBitsOffset + 0, 0,
4311 (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
4313 {PROTOBUF_FIELD_OFFSET(
RoutingModelParameters, _impl_.reduce_vehicle_cost_model_), _Internal::kHasBitsOffset + 1, 0,
4314 (0 | ::_fl::kFcOptional | ::_fl::kBool)},
4316 {PROTOBUF_FIELD_OFFSET(
RoutingModelParameters, _impl_.max_callback_cache_size_), _Internal::kHasBitsOffset + 2, 0,
4317 (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
4320 {::_pbi::TcParser::GetTable<::operations_research::ConstraintSolverParameters>()},
4327 ::google::protobuf::internal::TSanWrite(&
_impl_);
4328 ::uint32_t cached_has_bits = 0;
4330 (void) cached_has_bits;
4332 cached_has_bits =
_impl_._has_bits_[0];
4333 if ((cached_has_bits & 0x00000001u) != 0) {
4334 ABSL_DCHECK(
_impl_.solver_parameters_ !=
nullptr);
4335 _impl_.solver_parameters_->Clear();
4337 if ((cached_has_bits & 0x00000006u) != 0) {
4338 ::memset(&
_impl_.reduce_vehicle_cost_model_, 0,
static_cast<::
size_t>(
4339 reinterpret_cast<char*
>(&
_impl_.max_callback_cache_size_) -
4340 reinterpret_cast<char*
>(&
_impl_.reduce_vehicle_cost_model_)) +
sizeof(
_impl_.max_callback_cache_size_));
4342 _impl_._has_bits_.Clear();
4343 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
4346#if defined(PROTOBUF_CUSTOM_VTABLE)
4348 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
4349 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
4353 ::uint8_t* PROTOBUF_NONNULL target,
4354 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
4358 ::uint32_t cached_has_bits = 0;
4359 (void)cached_has_bits;
4361 cached_has_bits = this_._impl_._has_bits_[0];
4363 if ((cached_has_bits & 0x00000001u) != 0) {
4364 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
4365 1, *this_._impl_.solver_parameters_, this_._impl_.solver_parameters_->GetCachedSize(), target,
4370 if ((cached_has_bits & 0x00000002u) != 0) {
4371 if (this_._internal_reduce_vehicle_cost_model() != 0) {
4372 target = stream->EnsureSpace(target);
4373 target = ::_pbi::WireFormatLite::WriteBoolToArray(
4374 2, this_._internal_reduce_vehicle_cost_model(), target);
4379 if ((cached_has_bits & 0x00000004u) != 0) {
4380 if (this_._internal_max_callback_cache_size() != 0) {
4382 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
4383 stream, this_._internal_max_callback_cache_size(), target);
4387 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
4389 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
4390 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
4396#if defined(PROTOBUF_CUSTOM_VTABLE)
4404 ::size_t total_size = 0;
4406 ::uint32_t cached_has_bits = 0;
4408 (void)cached_has_bits;
4410 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
4411 cached_has_bits = this_._impl_._has_bits_[0];
4412 if ((cached_has_bits & 0x00000007u) != 0) {
4414 if ((cached_has_bits & 0x00000001u) != 0) {
4416 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.solver_parameters_);
4419 if ((cached_has_bits & 0x00000002u) != 0) {
4420 if (this_._internal_reduce_vehicle_cost_model() != 0) {
4425 if ((cached_has_bits & 0x00000004u) != 0) {
4426 if (this_._internal_max_callback_cache_size() != 0) {
4427 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
4428 this_._internal_max_callback_cache_size());
4432 return this_.MaybeComputeUnknownFieldsSize(total_size,
4433 &this_._impl_._cached_size_);
4436void RoutingModelParameters::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
4441 ABSL_DCHECK_NE(&from, _this);
4442 ::uint32_t cached_has_bits = 0;
4443 (void) cached_has_bits;
4445 cached_has_bits = from._impl_._has_bits_[0];
4446 if ((cached_has_bits & 0x00000007u) != 0) {
4447 if ((cached_has_bits & 0x00000001u) != 0) {
4448 ABSL_DCHECK(from._impl_.solver_parameters_ !=
nullptr);
4449 if (_this->_impl_.solver_parameters_ ==
nullptr) {
4450 _this->_impl_.solver_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.solver_parameters_);
4452 _this->_impl_.solver_parameters_->MergeFrom(*from._impl_.solver_parameters_);
4455 if ((cached_has_bits & 0x00000002u) != 0) {
4456 if (from._internal_reduce_vehicle_cost_model() != 0) {
4457 _this->_impl_.reduce_vehicle_cost_model_ = from._impl_.reduce_vehicle_cost_model_;
4460 if ((cached_has_bits & 0x00000004u) != 0) {
4461 if (from._internal_max_callback_cache_size() != 0) {
4462 _this->_impl_.max_callback_cache_size_ = from._impl_.max_callback_cache_size_;
4466 _this->_impl_._has_bits_[0] |= cached_has_bits;
4467 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
4472 if (&from ==
this)
return;
4478void RoutingModelParameters::InternalSwap(
RoutingModelParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
4480 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4481 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
4482 ::google::protobuf::internal::memswap<
4486 reinterpret_cast<char*
>(&
_impl_.solver_parameters_),
4487 reinterpret_cast<char*
>(&other->_impl_.solver_parameters_));
4491 return ::google::protobuf::Message::GetMetadataImpl(
GetClassData()->full());
4500PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
4503 ::std::false_type{});
4504#include "google/protobuf/port_undef.inc"
static PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 ::std::false_type _static_init2_
@protoc_insertion_point(global_scope)
static const ::_pb::Message *PROTOBUF_NONNULL const file_default_instances[]
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)
static void *PROTOBUF_NONNULL PlacementNew_(const void *PROTOBUF_NONNULL, void *PROTOBUF_NONNULL mem, ::google::protobuf::Arena *PROTOBUF_NULLABLE arena)
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
static constexpr auto InternalNewImpl_()
const ::google::protobuf::internal::ClassData *PROTOBUF_NONNULL GetClassData() const 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
static void *PROTOBUF_NONNULL PlacementNew_(const void *PROTOBUF_NONNULL, void *PROTOBUF_NONNULL mem, ::google::protobuf::Arena *PROTOBUF_NULLABLE arena)
::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_()
static constexpr auto InternalNewImpl_()
::google::protobuf::Metadata GetMetadata() const
int GetCachedSize() const
friend void swap(RoutingSearchParameters_ImprovementSearchLimitParameters &a, RoutingSearchParameters_ImprovementSearchLimitParameters &b)
RoutingSearchParameters_ImprovementSearchLimitParameters()
const ::google::protobuf::internal::ClassData *PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL
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)
const ::google::protobuf::internal::ClassData *PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL
static constexpr auto InternalNewImpl_()
friend void swap(RoutingSearchParameters_LocalSearchNeighborhoodOperators &a, RoutingSearchParameters_LocalSearchNeighborhoodOperators &b)
static constexpr auto InternalGenerateClassData_()
RoutingSearchParameters_LocalSearchNeighborhoodOperators()
static void *PROTOBUF_NONNULL PlacementNew_(const void *PROTOBUF_NONNULL, void *PROTOBUF_NONNULL mem, ::google::protobuf::Arena *PROTOBUF_NULLABLE arena)
::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
static void *PROTOBUF_NONNULL PlacementNew_(const void *PROTOBUF_NONNULL, void *PROTOBUF_NONNULL mem, ::google::protobuf::Arena *PROTOBUF_NULLABLE arena)
RoutingSearchParameters()
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
~RoutingSearchParameters() PROTOBUF_FINAL
::google::protobuf::Metadata GetMetadata() const
void clear_sat_parameters()
static constexpr auto InternalNewImpl_()
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_lns_time_limit()
friend void swap(RoutingSearchParameters &a, RoutingSearchParameters &b)
friend class ::google::protobuf::Arena
const ::google::protobuf::internal::ClassData *PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL
int GetCachedSize() const
In SWIG mode, we don't want anything besides these top-level includes.
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL RoutingSearchParameters_InsertionSortingProperty_descriptor()
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_[]
PROTOBUF_CONSTINIT const uint32_t RoutingSearchParameters_InsertionSortingProperty_internal_data_[]
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL RoutingSearchParameters_PairInsertionStrategy_descriptor()
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_
RoutingSearchParameters_PairInsertionStrategy
PROTOBUF_CONSTINIT const uint32_t RoutingSearchParameters_PairInsertionStrategy_internal_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
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fenums_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 const ::_pb::EnumDescriptor *PROTOBUF_NONNULL file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[3]
static const ::_pbi::DescriptorTable *PROTOBUF_NONNULL const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[6]
static constexprconst ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto
::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)
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()