Google OR-Tools: build/ortools/constraint_solver/routing_parameters.pb.cc Source File

1

2

3

4

5

7

8#include <algorithm>

9#include <type_traits>

10#include "google/protobuf/io/coded_stream.h"

11#include "google/protobuf/generated_message_tctable_impl.h"

12#include "google/protobuf/extension_set.h"

13#include "google/protobuf/generated_message_util.h"

14#include "google/protobuf/wire_format_lite.h"

15#include "google/protobuf/descriptor.h"

16#include "google/protobuf/generated_message_reflection.h"

17#include "google/protobuf/reflection_ops.h"

18#include "google/protobuf/wire_format.h"

19

20

21

22#include "google/protobuf/port_def.inc"

23PROTOBUF_PRAGMA_INIT_SEG

26namespace _fl = ::google::protobuf::internal::field_layout;

28

29inline constexpr RoutingSearchParameters_LocalSearchNeighborhoodOperators::Impl_::Impl_(

30 ::_pbi::ConstantInitialized) noexcept

31 : _cached_size_{0},

72

73template <typename>

75#if defined(PROTOBUF_CUSTOM_VTABLE)

77#else

78 : ::google::protobuf::Message(),

79#endif

80 _impl_(::_pbi::ConstantInitialized()) {

81}

89

90PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL

92

93inline constexpr RoutingSearchParameters_ImprovementSearchLimitParameters::Impl_::Impl_(

94 ::_pbi::ConstantInitialized) noexcept

95 : _cached_size_{0},

96 improvement_rate_coefficient_{0},

97 improvement_rate_solutions_distance_{0} {}

98

99template <typename>

101#if defined(PROTOBUF_CUSTOM_VTABLE)

103#else

104 : ::google::protobuf::Message(),

105#endif

106 _impl_(::_pbi::ConstantInitialized()) {

107}

115

116PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL

118

119inline constexpr RoutingModelParameters::Impl_::Impl_(

120 ::_pbi::ConstantInitialized) noexcept

121 : _cached_size_{0},

122 solver_parameters_{nullptr},

123 reduce_vehicle_cost_model_{false},

124 max_callback_cache_size_{0} {}

125

126template <typename>

128#if defined(PROTOBUF_CUSTOM_VTABLE)

130#else

131 : ::google::protobuf::Message(),

132#endif

133 _impl_(::_pbi::ConstantInitialized()) {

134}

142

143PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL

145

146inline constexpr RoutingSearchParameters::Impl_::Impl_(

147 ::_pbi::ConstantInitialized) noexcept

148 : _cached_size_{0},

149 local_search_operators_{nullptr},

150 time_limit_{nullptr},

151 lns_time_limit_{nullptr},

152 improvement_limit_parameters_{nullptr},

153 global_cheapest_insertion_first_solution_parameters_{nullptr},

156 guided_local_search_lambda_coefficient_{0},

157 optimization_step_{0},

158 solution_limit_{::int64_t{0}},

159 use_unfiltered_first_solution_strategy_{false},

160 use_depth_first_search_{false},

161 use_full_propagation_{false},

162 log_search_{false},

163 number_of_solutions_to_collect_{0},

164 log_cost_scaling_factor_{0},

165 relocate_expensive_chain_num_arcs_to_consider_{0},

167 log_cost_offset_{0},

169 heuristic_expensive_chain_lns_num_arcs_to_consider_{0},

171 heuristic_close_nodes_lns_num_nodes_{0},

172 multi_armed_bandit_compound_operator_memory_coefficient_{0},

173 christofides_use_minimum_matching_{false},

174 use_multi_armed_bandit_concatenate_operators_{false},

175 report_intermediate_cp_sat_solutions_{false},

177 local_search_metaheuristics_{},

178 _local_search_metaheuristics_cached_byte_size_{0},

179 log_tag_(

180 &::google::protobuf::internal::fixed_address_empty_string,

181 ::_pbi::ConstantInitialized()),

182 sat_parameters_{nullptr},

183 iterated_local_search_parameters_{nullptr},

184 local_cheapest_insertion_parameters_{nullptr},

185 local_cheapest_cost_insertion_parameters_{nullptr},

186 savings_parameters_{nullptr},

187 global_cheapest_insertion_ls_operator_parameters_{nullptr},

189 fallback_to_cp_sat_size_threshold_{0},

190 multi_armed_bandit_compound_operator_exploration_coefficient_{0},

191 ls_operator_neighbors_ratio_{0},

192 ls_operator_min_neighbors_{0},

193 disable_scheduling_beware_this_may_degrade_performance_{false},

194 guided_local_search_reset_penalties_on_new_best_solution_{false},

195 use_iterated_local_search_{false},

196 guided_local_search_penalize_with_vehicle_classes_{false},

197 secondary_ls_time_limit_ratio_{0},

198 first_solution_optimization_period_{0},

199 use_guided_local_search_penalties_in_local_search_operators_{false},

200 num_max_local_optima_before_metaheuristic_switch_{0},

201 max_swap_active_chain_size_{0} {}

202

203template <typename>

205#if defined(PROTOBUF_CUSTOM_VTABLE)

207#else

208 : ::google::protobuf::Message(),

209#endif

210 _impl_(::_pbi::ConstantInitialized()) {

211}

219

220PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL

222}

223static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL

225static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE

227const ::uint32_t

229 protodesc_cold) = {

230 0x081,

232 43,

273 0,

274 1,

275 23,

276 2,

277 24,

278 3,

279 21,

280 25,

281 4,

282 5,

283 22,

284 6,

285 7,

286 8,

287 9,

288 10,

289 20,

290 37,

291 38,

292 11,

293 12,

294 13,

295 35,

296 14,

297 34,

298 36,

299 19,

300 15,

301 16,

302 17,

303 18,

304 26,

305 27,

306 33,

307 28,

308 29,

309 30,

310 32,

311 39,

312 31,

313 0x081,

315 5,

318 0,

319 1,

320 0x081,

322 53,

373 5,

374 10,

375 34,

376 4,

377 35,

378 32,

379 33,

380 24,

381 46,

382 0,

383 39,

384 40,

385 25,

386 23,

387 38,

388 49,

389 16,

390 20,

391 22,

392 6,

393 28,

394 48,

395 7,

396 42,

397 44,

398 47,

399 11,

400 19,

401 17,

402 27,

403 30,

404 26,

405 37,

406 36,

407 21,

408 41,

409 8,

410 14,

411 9,

412 1,

413 2,

414 45,

415 3,

416 12,

417 13,

418 15,

419 18,

420 29,

421 43,

422 31,

423 0x081,

425 6,

429 0,

430 1,

431 2,

432};

433

434static const ::_pbi::MigrationSchema

440};

447const char descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(

448 protodesc_cold) = {

449 "\n2ortools/constraint_solver/routing_para"

450 "meters.proto\022\023operations_research\032\036googl"

451 "e/protobuf/duration.proto\032-ortools/const"

452 "raint_solver/routing_enums.proto\032<ortool"

453 "s/constraint_solver/routing_heuristic_pa"

454 "rameters.proto\032+ortools/constraint_solve"

455 "r/routing_ils.proto\0321ortools/constraint_"

456 "solver/solver_parameters.proto\032 ortools/"

457 "sat/sat_parameters.proto\032#ortools/util/o"

458 "ptional_boolean.proto\"\3301\n\027RoutingSearchP"

459 "arameters\022Q\n\027first_solution_strategy\030\001 \001"

460 "(\01620.operations_research.FirstSolutionSt"

461 "rategy.Value\022.\n&use_unfiltered_first_sol"

462 "ution_strategy\030\002 \001(\010\022B\n\022savings_paramete"

463 "rs\030F \001(\0132&.operations_research.SavingsPa"

464 "rameters\022s\n3global_cheapest_insertion_fi"

465 "rst_solution_parameters\030G \001(\01326.operatio"

466 "ns_research.GlobalCheapestInsertionParam"

467 "eters\022p\n0global_cheapest_insertion_ls_op"

468 "erator_parameters\030H \001(\01326.operations_res"

469 "earch.GlobalCheapestInsertionParameters\022"

470 "b\n#local_cheapest_insertion_parameters\030D"

471 " \001(\01325.operations_research.LocalCheapest"

472 "InsertionParameters\022g\n(local_cheapest_co"

473 "st_insertion_parameters\030E \001(\01325.operatio"

474 "ns_research.LocalCheapestInsertionParame"

475 "ters\022)\n!christofides_use_minimum_matchin"

476 "g\030\036 \001(\010\022*\n\"first_solution_optimization_p"

477 "eriod\030; \001(\005\022m\n\026local_search_operators\030\003 "

478 "\001(\0132M.operations_research.RoutingSearchP"

479 "arameters.LocalSearchNeighborhoodOperato"

480 "rs\022#\n\033ls_operator_neighbors_ratio\0305 \001(\001\022"

481 "!\n\031ls_operator_min_neighbors\0306 \001(\005\0224\n,us"

482 "e_multi_armed_bandit_concatenate_operato"

483 "rs\030) \001(\010\022\?\n7multi_armed_bandit_compound_"

484 "operator_memory_coefficient\030* \001(\001\022D\n<mul"

485 "ti_armed_bandit_compound_operator_explor"

486 "ation_coefficient\030+ \001(\001\022\"\n\032max_swap_acti"

487 "ve_chain_size\030B \001(\005\0225\n-relocate_expensiv"

488 "e_chain_num_arcs_to_consider\030\024 \001(\005\022:\n2he"

489 "uristic_expensive_chain_lns_num_arcs_to_"

490 "consider\030 \001(\005\022+\n#heuristic_close_nodes_"

491 "lns_num_nodes\030# \001(\005\022W\n\032local_search_meta"

492 "heuristic\030\004 \001(\01623.operations_research.Lo"

493 "calSearchMetaheuristic.Value\022X\n\033local_se"

494 "arch_metaheuristics\030\? \003(\01623.operations_r"

495 "esearch.LocalSearchMetaheuristic.Value\0228"

496 "\n0num_max_local_optima_before_metaheuris"

497 "tic_switch\030@ \001(\005\022.\n&guided_local_search_"

498 "lambda_coefficient\030\005 \001(\001\022@\n8guided_local"

499 "_search_reset_penalties_on_new_best_solu"

500 "tion\0303 \001(\010\0229\n1guided_local_search_penali"

501 "ze_with_vehicle_classes\030= \001(\010\022C\n;use_gui"

502 "ded_local_search_penalties_in_local_sear"

503 "ch_operators\030> \001(\010\022\036\n\026use_depth_first_se"

504 "arch\030\006 \001(\010\0224\n\006use_cp\030\034 \001(\0162$.operations_"

505 "research.OptionalBoolean\0228\n\nuse_cp_sat\030\033"

506 " \001(\0162$.operations_research.OptionalBoole"

507 "an\022D\n\026use_generalized_cp_sat\030/ \001(\0162$.ope"

508 "rations_research.OptionalBoolean\022>\n\016sat_"

509 "parameters\0300 \001(\0132&.operations_research.s"

510 "at.SatParameters\022,\n$report_intermediate_"

511 "cp_sat_solutions\0308 \001(\010\022)\n!fallback_to_cp"

512 "_sat_size_threshold\0304 \001(\005\022c\n\034continuous_"

513 "scheduling_solver\030! \001(\0162=.operations_res"

514 "earch.RoutingSearchParameters.Scheduling"

515 "Solver\022f\n\037mixed_integer_scheduling_solve"

516 "r\030\" \001(\0162=.operations_research.RoutingSea"

517 "rchParameters.SchedulingSolver\022C\n6disabl"

518 "e_scheduling_beware_this_may_degrade_per"

519 "formance\0302 \001(\010H\000\210\001\001\022\031\n\021optimization_step"

520 "\030\007 \001(\001\022&\n\036number_of_solutions_to_collect"

521 "\030\021 \001(\005\022\026\n\016solution_limit\030\010 \001(\003\022-\n\ntime_l"

522 "imit\030\t \001(\0132\031.google.protobuf.Duration\0221\n"

523 "\016lns_time_limit\030\n \001(\0132\031.google.protobuf."

524 "Duration\022%\n\035secondary_ls_time_limit_rati"

525 "o\0309 \001(\001\022s\n\034improvement_limit_parameters\030"

526 "% \001(\0132M.operations_research.RoutingSearc"

527 "hParameters.ImprovementSearchLimitParame"

528 "ters\022\034\n\024use_full_propagation\030\013 \001(\010\022\022\n\nlo"

529 "g_search\030\r \001(\010\022\037\n\027log_cost_scaling_facto"

530 "r\030\026 \001(\001\022\027\n\017log_cost_offset\030\035 \001(\001\022\017\n\007log_"

531 "tag\030$ \001(\t\022!\n\031use_iterated_local_search\030:"

532 " \001(\010\022\\\n iterated_local_search_parameters"

533 "\030< \001(\01322.operations_research.IteratedLoc"

534 "alSearchParameters\032\223\027\n LocalSearchNeighb"

535 "orhoodOperators\022:\n\014use_relocate\030\001 \001(\0162$."

536 "operations_research.OptionalBoolean\022\?\n\021u"

537 "se_relocate_pair\030\002 \001(\0162$.operations_rese"

538 "arch.OptionalBoolean\022E\n\027use_light_reloca"

539 "te_pair\030\030 \001(\0162$.operations_research.Opti"

540 "onalBoolean\022D\n\026use_relocate_neighbors\030\003 "

541 "\001(\0162$.operations_research.OptionalBoolea"

542 "n\022B\n\024use_relocate_subtrip\030\031 \001(\0162$.operat"

543 "ions_research.OptionalBoolean\022:\n\014use_exc"

544 "hange\030\004 \001(\0162$.operations_research.Option"

545 "alBoolean\022\?\n\021use_exchange_pair\030\026 \001(\0162$.o"

546 "perations_research.OptionalBoolean\022B\n\024us"

547 "e_exchange_subtrip\030\032 \001(\0162$.operations_re"

548 "search.OptionalBoolean\0227\n\tuse_cross\030\005 \001("

549 "\0162$.operations_research.OptionalBoolean\022"

550 "@\n\022use_cross_exchange\030\006 \001(\0162$.operations"

551 "_research.OptionalBoolean\022J\n\034use_relocat"

552 "e_expensive_chain\030\027 \001(\0162$.operations_res"

553 "earch.OptionalBoolean\0229\n\013use_two_opt\030\007 \001"

554 "(\0162$.operations_research.OptionalBoolean"

555 "\0228\n\nuse_or_opt\030\010 \001(\0162$.operations_resear"

556 "ch.OptionalBoolean\022\?\n\021use_lin_kernighan\030"

557 "\t \001(\0162$.operations_research.OptionalBool"

558 "ean\0229\n\013use_tsp_opt\030\n \001(\0162$.operations_re"

559 "search.OptionalBoolean\022=\n\017use_make_activ"

560 "e\030\013 \001(\0162$.operations_research.OptionalBo"

561 "olean\022J\n\034use_relocate_and_make_active\030\025 "

562 "\001(\0162$.operations_research.OptionalBoolea"

563 "n\022J\n\034use_exchange_and_make_active\030% \001(\0162"

564 "$.operations_research.OptionalBoolean\022Z\n"

565 ",use_exchange_path_start_ends_and_make_a"

566 "ctive\030& \001(\0162$.operations_research.Option"

567 "alBoolean\022\?\n\021use_make_inactive\030\014 \001(\0162$.o"

568 "perations_research.OptionalBoolean\022E\n\027us"

569 "e_make_chain_inactive\030\r \001(\0162$.operations"

570 "_research.OptionalBoolean\022=\n\017use_swap_ac"

571 "tive\030\016 \001(\0162$.operations_research.Optiona"

572 "lBoolean\022C\n\025use_swap_active_chain\030# \001(\0162"

573 "$.operations_research.OptionalBoolean\022F\n"

574 "\030use_extended_swap_active\030\017 \001(\0162$.operat"

575 "ions_research.OptionalBoolean\022K\n\035use_sho"

576 "rtest_path_swap_active\030\" \001(\0162$.operation"

577 "s_research.OptionalBoolean\022G\n\031use_shorte"

578 "st_path_two_opt\030$ \001(\0162$.operations_resea"

579 "rch.OptionalBoolean\022G\n\031use_node_pair_swa"

580 "p_active\030\024 \001(\0162$.operations_research.Opt"

581 "ionalBoolean\022:\n\014use_path_lns\030\020 \001(\0162$.ope"

582 "rations_research.OptionalBoolean\022\?\n\021use_"

583 "full_path_lns\030\021 \001(\0162$.operations_researc"

584 "h.OptionalBoolean\0229\n\013use_tsp_lns\030\022 \001(\0162$"

585 ".operations_research.OptionalBoolean\022>\n\020"

586 "use_inactive_lns\030\023 \001(\0162$.operations_rese"

587 "arch.OptionalBoolean\022T\n&use_global_cheap"

588 "est_insertion_path_lns\030\033 \001(\0162$.operation"

589 "s_research.OptionalBoolean\022S\n%use_local_"

590 "cheapest_insertion_path_lns\030\034 \001(\0162$.oper"

591 "ations_research.OptionalBoolean\022l\n>use_r"

592 "elocate_path_global_cheapest_insertion_i"

593 "nsert_unperformed\030! \001(\0162$.operations_res"

594 "earch.OptionalBoolean\022_\n1use_global_chea"

595 "pest_insertion_expensive_chain_lns\030\035 \001(\016"

596 "2$.operations_research.OptionalBoolean\022^"

597 "\n0use_local_cheapest_insertion_expensive"

598 "_chain_lns\030\036 \001(\0162$.operations_research.O"

599 "ptionalBoolean\022[\n-use_global_cheapest_in"

600 "sertion_close_nodes_lns\030\037 \001(\0162$.operatio"

601 "ns_research.OptionalBoolean\022Z\n,use_local"

602 "_cheapest_insertion_close_nodes_lns\030 \001("

603 "\0162$.operations_research.OptionalBoolean\022"

604 "[\n-use_global_cheapest_insertion_visit_t"

605 "ypes_lns\030\' \001(\0162$.operations_research.Opt"

606 "ionalBoolean\022Z\n,use_local_cheapest_inser"

607 "tion_visit_types_lns\030( \001(\0162$.operations_"

608 "research.OptionalBoolean\032u\n ImprovementS"

609 "earchLimitParameters\022$\n\034improvement_rate"

610 "_coefficient\030& \001(\001\022+\n#improvement_rate_s"

611 "olutions_distance\030\' \001(\005\"T\n\020SchedulingSol"

612 "ver\022\024\n\020SCHEDULING_UNSET\020\000\022\023\n\017SCHEDULING_"

613 "GLOP\020\001\022\025\n\021SCHEDULING_CP_SAT\020\002B9\n7_disabl"

614 "e_scheduling_beware_this_may_degrade_per"

615 "formanceJ\004\010\016\020\017J\004\010\017\020\020J\004\010\020\020\021J\004\010\022\020\023J\004\010\023\020\024J\004"

616 "\010\025\020\026J\004\010\027\020\030J\004\010\037\020 J\004\010(\020)J\004\010,\020-J\004\010-\020.J\004\010.\020/"

617 "J\004\0101\0202J\004\0107\0208J\004\010A\020BJ\004\010C\020D\"\250\001\n\026RoutingMode"

618 "lParameters\022J\n\021solver_parameters\030\001 \001(\0132/"

619 ".operations_research.ConstraintSolverPar"

620 "ameters\022!\n\031reduce_vehicle_cost_model\030\002 \001"

621 "(\010\022\037\n\027max_callback_cache_size\030\003 \001(\005BI\n#c"

622 "om.google.ortools.constraintsolverP\001\252\002\037G"

623 "oogle.OrTools.ConstraintSolverb\006proto3"

624};

625static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL const

627 &::descriptor_table_google_2fprotobuf_2fduration_2eproto,

634};

637 false,

638 false,

639 6998,

640 descriptor_table_protodef_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto,

641 "ortools/constraint_solver/routing_parameters.proto",

644 7,

645 4,

651};

659

660

661class RoutingSearchParameters_LocalSearchNeighborhoodOperators::_Internal {

664 decltype(::std::declval<RoutingSearchParameters_LocalSearchNeighborhoodOperators>()._impl_._has_bits_);

667};

668

670#if defined(PROTOBUF_CUSTOM_VTABLE)

672#else

673 : ::google::protobuf::Message(arena) {

674#endif

675 SharedCtor(arena);

676

677}

680#if defined(PROTOBUF_CUSTOM_VTABLE)

682#else

683 : ::google::protobuf::Message(arena),

684#endif

685 _impl_(from._impl_) {

686 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(

687 from._internal_metadata_);

688}

689PROTOBUF_NDEBUG_INLINE RoutingSearchParameters_LocalSearchNeighborhoodOperators::Impl_::Impl_(

690 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,

691 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)

692 : _cached_size_{0} {}

693

694inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {

695 new (&_impl_) Impl_(internal_visibility(), arena);

696 ::memset(reinterpret_cast<char*>(&_impl_) +

697 offsetof(Impl_, use_relocate_),

698 0,

699 offsetof(Impl_, use_global_cheapest_insertion_visit_types_lns_) -

700 offsetof(Impl_, use_relocate_) +

701 sizeof(Impl_::use_global_cheapest_insertion_visit_types_lns_));

702}

704

705 SharedDtor(*this);

706}

707inline void RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor(MessageLite& self) {

709 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

710 this_.CheckHasBitConsistency();

711 }

712 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();

713 ABSL_DCHECK(this_.GetArena() == nullptr);

714 this_._impl_.~Impl_();

715}

716

717inline void* PROTOBUF_NONNULL RoutingSearchParameters_LocalSearchNeighborhoodOperators::PlacementNew_(

718 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,

719 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {

721}

722constexpr auto RoutingSearchParameters_LocalSearchNeighborhoodOperators::InternalNewImpl_() {

725}

727 return ::google::protobuf::internal::ClassDataFull{

728 ::google::protobuf::internal::ClassData{

730 &_table_.header,

731 nullptr,

732 nullptr,

733 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl,

734 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters_LocalSearchNeighborhoodOperators>(),

735#if defined(PROTOBUF_CUSTOM_VTABLE)

736 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::SharedDtor,

739#endif

741 false,

742 },

743 &RoutingSearchParameters_LocalSearchNeighborhoodOperators::kDescriptorMethods,

745 nullptr,

746 };

747}

748

749PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const

752

753PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL

754RoutingSearchParameters_LocalSearchNeighborhoodOperators::GetClassData() const {

758}

759PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1

760const ::_pbi::TcParseTable<5, 40, 0, 0, 7>

761RoutingSearchParameters_LocalSearchNeighborhoodOperators::_table_ = {

762 {

764 0,

765 40, 248,

766 offsetof(decltype(_table_), field_lookup_table),

767 0,

768 offsetof(decltype(_table_), field_entries),

769 40,

770 0,

771 offsetof(decltype(_table_), field_names),

773 nullptr,

774 ::_pbi::TcParser::GenericFallback,

775 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE

776 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>(),

777 #endif

778 }, {{

779 {::_pbi::TcParser::MiniParse, {}},

780

782 {8, 0, 0,

784

786 {16, 1, 0,

788

790 {24, 2, 0,

792

794 {32, 3, 0,

796

798 {40, 4, 0,

800

802 {48, 5, 0,

804

806 {56, 6, 0,

808

810 {64, 7, 0,

812

814 {72, 8, 0,

816

818 {80, 9, 0,

820

822 {88, 10, 0,

824

826 {96, 11, 0,

828

830 {104, 12, 0,

832

834 {112, 13, 0,

836

838 {120, 14, 0,

840

841 {::_pbi::TcParser::FastV32S2,

842 {384, 15, 0,

844

845 {::_pbi::TcParser::FastV32S2,

846 {392, 16, 0,

848

849 {::_pbi::TcParser::FastV32S2,

850 {400, 17, 0,

852

853 {::_pbi::TcParser::FastV32S2,

854 {408, 18, 0,

856

857 {::_pbi::TcParser::FastV32S2,

858 {416, 19, 0,

860

861 {::_pbi::TcParser::FastV32S2,

862 {424, 20, 0,

864

865 {::_pbi::TcParser::FastV32S2,

866 {432, 21, 0,

868

869 {::_pbi::TcParser::FastV32S2,

870 {440, 22, 0,

872

873 {::_pbi::TcParser::FastV32S2,

874 {448, 23, 0,

876

877 {::_pbi::TcParser::FastV32S2,

878 {456, 24, 0,

880

881 {::_pbi::TcParser::FastV32S2,

882 {464, 25, 0,

884

885 {::_pbi::TcParser::FastV32S2,

886 {472, 26, 0,

888

889 {::_pbi::TcParser::FastV32S2,

890 {480, 27, 0,

892

893 {::_pbi::TcParser::FastV32S2,

894 {488, 28, 0,

896

897 {::_pbi::TcParser::FastV32S2,

898 {496, 29, 0,

900

901 {::_pbi::TcParser::FastV32S2,

902 {504, 30, 0,

904 }}, {{

905 33, 0, 1,

906 65280, 32,

907 65535, 65535

908 }}, {{

909

911

913

915

917

919

921

923

925

927

929

931

933

935

937

939

941

943

945

947

949

951

953

955

957

959

961

963

965

967

969

971

973

975

977

979

981

983

985

987

989 }},

990

991 {{

992 }},

993};

995

996 ::google::protobuf::internal::TSanWrite(&_impl_);

997 ::uint32_t cached_has_bits = 0;

998

999 (void) cached_has_bits;

1000

1001 cached_has_bits = _impl_._has_bits_[0];

1002 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

1003 ::memset(&_impl_.use_relocate_, 0, static_cast<::size_t>(

1004 reinterpret_cast<char*>(&_impl_.use_or_opt_) -

1005 reinterpret_cast<char*>(&_impl_.use_relocate_)) + sizeof(_impl_.use_or_opt_));

1006 }

1007 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {

1008 ::memset(&_impl_.use_lin_kernighan_, 0, static_cast<::size_t>(

1009 reinterpret_cast<char*>(&_impl_.use_path_lns_) -

1010 reinterpret_cast<char*>(&_impl_.use_lin_kernighan_)) + sizeof(_impl_.use_path_lns_));

1011 }

1012 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {

1013 ::memset(&_impl_.use_full_path_lns_, 0, static_cast<::size_t>(

1014 reinterpret_cast<char*>(&_impl_.use_light_relocate_pair_) -

1015 reinterpret_cast<char*>(&_impl_.use_full_path_lns_)) + sizeof(_impl_.use_light_relocate_pair_));

1016 }

1017 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {

1018 ::memset(&_impl_.use_relocate_subtrip_, 0, static_cast<::size_t>(

1019 reinterpret_cast<char*>(&_impl_.use_local_cheapest_insertion_visit_types_lns_) -

1020 reinterpret_cast<char*>(&_impl_.use_relocate_subtrip_)) + sizeof(_impl_.use_local_cheapest_insertion_visit_types_lns_));

1021 }

1022 cached_has_bits = _impl_._has_bits_[1];

1023 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

1024 ::memset(&_impl_.use_local_cheapest_insertion_close_nodes_lns_, 0, static_cast<::size_t>(

1025 reinterpret_cast<char*>(&_impl_.use_global_cheapest_insertion_visit_types_lns_) -

1026 reinterpret_cast<char*>(&_impl_.use_local_cheapest_insertion_close_nodes_lns_)) + sizeof(_impl_.use_global_cheapest_insertion_visit_types_lns_));

1027 }

1028 _impl_._has_bits_.Clear();

1029 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();

1030}

1031

1032#if defined(PROTOBUF_CUSTOM_VTABLE)

1034 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,

1035 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {

1037#else

1039 ::uint8_t* PROTOBUF_NONNULL target,

1040 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {

1042#endif

1043 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

1044 this_.CheckHasBitConsistency();

1045 }

1046

1047 ::uint32_t cached_has_bits = 0;

1048 (void)cached_has_bits;

1049

1050 cached_has_bits = this_._impl_._has_bits_[0];

1051

1052 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

1053 if (this_._internal_use_relocate() != 0) {

1054 target = stream->EnsureSpace(target);

1055 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1056 1, this_._internal_use_relocate(), target);

1057 }

1058 }

1059

1060

1061 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

1062 if (this_._internal_use_relocate_pair() != 0) {

1063 target = stream->EnsureSpace(target);

1064 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1065 2, this_._internal_use_relocate_pair(), target);

1066 }

1067 }

1068

1069

1070 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

1071 if (this_._internal_use_relocate_neighbors() != 0) {

1072 target = stream->EnsureSpace(target);

1073 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1074 3, this_._internal_use_relocate_neighbors(), target);

1075 }

1076 }

1077

1078

1079 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

1080 if (this_._internal_use_exchange() != 0) {

1081 target = stream->EnsureSpace(target);

1082 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1083 4, this_._internal_use_exchange(), target);

1084 }

1085 }

1086

1087

1088 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

1089 if (this_._internal_use_cross() != 0) {

1090 target = stream->EnsureSpace(target);

1091 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1092 5, this_._internal_use_cross(), target);

1093 }

1094 }

1095

1096

1097 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

1098 if (this_._internal_use_cross_exchange() != 0) {

1099 target = stream->EnsureSpace(target);

1100 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1101 6, this_._internal_use_cross_exchange(), target);

1102 }

1103 }

1104

1105

1106 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

1107 if (this_._internal_use_two_opt() != 0) {

1108 target = stream->EnsureSpace(target);

1109 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1110 7, this_._internal_use_two_opt(), target);

1111 }

1112 }

1113

1114

1115 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

1116 if (this_._internal_use_or_opt() != 0) {

1117 target = stream->EnsureSpace(target);

1118 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1119 8, this_._internal_use_or_opt(), target);

1120 }

1121 }

1122

1123

1124 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

1125 if (this_._internal_use_lin_kernighan() != 0) {

1126 target = stream->EnsureSpace(target);

1127 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1128 9, this_._internal_use_lin_kernighan(), target);

1129 }

1130 }

1131

1132

1133 if (CheckHasBit(cached_has_bits, 0x00000200U)) {

1134 if (this_._internal_use_tsp_opt() != 0) {

1135 target = stream->EnsureSpace(target);

1136 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1137 10, this_._internal_use_tsp_opt(), target);

1138 }

1139 }

1140

1141

1142 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

1143 if (this_._internal_use_make_active() != 0) {

1144 target = stream->EnsureSpace(target);

1145 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1146 11, this_._internal_use_make_active(), target);

1147 }

1148 }

1149

1150

1151 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

1152 if (this_._internal_use_make_inactive() != 0) {

1153 target = stream->EnsureSpace(target);

1154 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1155 12, this_._internal_use_make_inactive(), target);

1156 }

1157 }

1158

1159

1160 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

1161 if (this_._internal_use_make_chain_inactive() != 0) {

1162 target = stream->EnsureSpace(target);

1163 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1164 13, this_._internal_use_make_chain_inactive(), target);

1165 }

1166 }

1167

1168

1169 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

1170 if (this_._internal_use_swap_active() != 0) {

1171 target = stream->EnsureSpace(target);

1172 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1173 14, this_._internal_use_swap_active(), target);

1174 }

1175 }

1176

1177

1178 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

1179 if (this_._internal_use_extended_swap_active() != 0) {

1180 target = stream->EnsureSpace(target);

1181 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1182 15, this_._internal_use_extended_swap_active(), target);

1183 }

1184 }

1185

1186

1187 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

1188 if (this_._internal_use_path_lns() != 0) {

1189 target = stream->EnsureSpace(target);

1190 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1191 16, this_._internal_use_path_lns(), target);

1192 }

1193 }

1194

1195

1196 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

1197 if (this_._internal_use_full_path_lns() != 0) {

1198 target = stream->EnsureSpace(target);

1199 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1200 17, this_._internal_use_full_path_lns(), target);

1201 }

1202 }

1203

1204

1205 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

1206 if (this_._internal_use_tsp_lns() != 0) {

1207 target = stream->EnsureSpace(target);

1208 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1209 18, this_._internal_use_tsp_lns(), target);

1210 }

1211 }

1212

1213

1214 if (CheckHasBit(cached_has_bits, 0x00040000U)) {

1215 if (this_._internal_use_inactive_lns() != 0) {

1216 target = stream->EnsureSpace(target);

1217 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1218 19, this_._internal_use_inactive_lns(), target);

1219 }

1220 }

1221

1222

1223 if (CheckHasBit(cached_has_bits, 0x00080000U)) {

1224 if (this_._internal_use_node_pair_swap_active() != 0) {

1225 target = stream->EnsureSpace(target);

1226 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1227 20, this_._internal_use_node_pair_swap_active(), target);

1228 }

1229 }

1230

1231

1232 if (CheckHasBit(cached_has_bits, 0x00100000U)) {

1233 if (this_._internal_use_relocate_and_make_active() != 0) {

1234 target = stream->EnsureSpace(target);

1235 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1236 21, this_._internal_use_relocate_and_make_active(), target);

1237 }

1238 }

1239

1240

1241 if (CheckHasBit(cached_has_bits, 0x00200000U)) {

1242 if (this_._internal_use_exchange_pair() != 0) {

1243 target = stream->EnsureSpace(target);

1244 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1245 22, this_._internal_use_exchange_pair(), target);

1246 }

1247 }

1248

1249

1250 if (CheckHasBit(cached_has_bits, 0x00400000U)) {

1251 if (this_._internal_use_relocate_expensive_chain() != 0) {

1252 target = stream->EnsureSpace(target);

1253 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1254 23, this_._internal_use_relocate_expensive_chain(), target);

1255 }

1256 }

1257

1258

1259 if (CheckHasBit(cached_has_bits, 0x00800000U)) {

1260 if (this_._internal_use_light_relocate_pair() != 0) {

1261 target = stream->EnsureSpace(target);

1262 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1263 24, this_._internal_use_light_relocate_pair(), target);

1264 }

1265 }

1266

1267

1268 if (CheckHasBit(cached_has_bits, 0x01000000U)) {

1269 if (this_._internal_use_relocate_subtrip() != 0) {

1270 target = stream->EnsureSpace(target);

1271 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1272 25, this_._internal_use_relocate_subtrip(), target);

1273 }

1274 }

1275

1276

1277 if (CheckHasBit(cached_has_bits, 0x02000000U)) {

1278 if (this_._internal_use_exchange_subtrip() != 0) {

1279 target = stream->EnsureSpace(target);

1280 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1281 26, this_._internal_use_exchange_subtrip(), target);

1282 }

1283 }

1284

1285

1286 if (CheckHasBit(cached_has_bits, 0x04000000U)) {

1287 if (this_._internal_use_global_cheapest_insertion_path_lns() != 0) {

1288 target = stream->EnsureSpace(target);

1289 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1290 27, this_._internal_use_global_cheapest_insertion_path_lns(), target);

1291 }

1292 }

1293

1294

1295 if (CheckHasBit(cached_has_bits, 0x08000000U)) {

1296 if (this_._internal_use_local_cheapest_insertion_path_lns() != 0) {

1297 target = stream->EnsureSpace(target);

1298 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1299 28, this_._internal_use_local_cheapest_insertion_path_lns(), target);

1300 }

1301 }

1302

1303

1304 if (CheckHasBit(cached_has_bits, 0x10000000U)) {

1305 if (this_._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {

1306 target = stream->EnsureSpace(target);

1307 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1308 29, this_._internal_use_global_cheapest_insertion_expensive_chain_lns(), target);

1309 }

1310 }

1311

1312

1313 if (CheckHasBit(cached_has_bits, 0x20000000U)) {

1314 if (this_._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {

1315 target = stream->EnsureSpace(target);

1316 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1317 30, this_._internal_use_local_cheapest_insertion_expensive_chain_lns(), target);

1318 }

1319 }

1320

1321

1322 if (CheckHasBit(cached_has_bits, 0x40000000U)) {

1323 if (this_._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {

1324 target = stream->EnsureSpace(target);

1325 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1326 31, this_._internal_use_global_cheapest_insertion_close_nodes_lns(), target);

1327 }

1328 }

1329

1330 cached_has_bits = this_._impl_._has_bits_[1];

1331

1332 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

1333 if (this_._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {

1334 target = stream->EnsureSpace(target);

1335 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1336 32, this_._internal_use_local_cheapest_insertion_close_nodes_lns(), target);

1337 }

1338 }

1339

1340

1341 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

1342 if (this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {

1343 target = stream->EnsureSpace(target);

1344 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1345 33, this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed(), target);

1346 }

1347 }

1348

1349

1350 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

1351 if (this_._internal_use_shortest_path_swap_active() != 0) {

1352 target = stream->EnsureSpace(target);

1353 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1354 34, this_._internal_use_shortest_path_swap_active(), target);

1355 }

1356 }

1357

1358

1359 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

1360 if (this_._internal_use_swap_active_chain() != 0) {

1361 target = stream->EnsureSpace(target);

1362 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1363 35, this_._internal_use_swap_active_chain(), target);

1364 }

1365 }

1366

1367

1368 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

1369 if (this_._internal_use_shortest_path_two_opt() != 0) {

1370 target = stream->EnsureSpace(target);

1371 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1372 36, this_._internal_use_shortest_path_two_opt(), target);

1373 }

1374 }

1375

1376

1377 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

1378 if (this_._internal_use_exchange_and_make_active() != 0) {

1379 target = stream->EnsureSpace(target);

1380 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1381 37, this_._internal_use_exchange_and_make_active(), target);

1382 }

1383 }

1384

1385

1386 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

1387 if (this_._internal_use_exchange_path_start_ends_and_make_active() != 0) {

1388 target = stream->EnsureSpace(target);

1389 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1390 38, this_._internal_use_exchange_path_start_ends_and_make_active(), target);

1391 }

1392 }

1393

1394

1395 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

1396 if (this_._internal_use_global_cheapest_insertion_visit_types_lns() != 0) {

1397 target = stream->EnsureSpace(target);

1398 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1399 39, this_._internal_use_global_cheapest_insertion_visit_types_lns(), target);

1400 }

1401 }

1402

1403 cached_has_bits = this_._impl_._has_bits_[0];

1404

1405 if (CheckHasBit(cached_has_bits, 0x80000000U)) {

1406 if (this_._internal_use_local_cheapest_insertion_visit_types_lns() != 0) {

1407 target = stream->EnsureSpace(target);

1408 target = ::_pbi::WireFormatLite::WriteEnumToArray(

1409 40, this_._internal_use_local_cheapest_insertion_visit_types_lns(), target);

1410 }

1411 }

1412

1413 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {

1414 target =

1415 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(

1416 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);

1417 }

1418

1419 return target;

1420}

1421

1422#if defined(PROTOBUF_CUSTOM_VTABLE)

1425#else

1428#endif

1429

1430 ::size_t total_size = 0;

1431

1432 ::uint32_t cached_has_bits = 0;

1433

1434 (void)cached_has_bits;

1435

1436 ::_pbi::Prefetch5LinesFrom7Lines(&this_);

1437 cached_has_bits = this_._impl_._has_bits_[0];

1438 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

1439

1440 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

1441 if (this_._internal_use_relocate() != 0) {

1442 total_size += 1 +

1443 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate());

1444 }

1445 }

1446

1447 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

1448 if (this_._internal_use_relocate_pair() != 0) {

1449 total_size += 1 +

1450 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_pair());

1451 }

1452 }

1453

1454 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

1455 if (this_._internal_use_relocate_neighbors() != 0) {

1456 total_size += 1 +

1457 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_neighbors());

1458 }

1459 }

1460

1461 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

1462 if (this_._internal_use_exchange() != 0) {

1463 total_size += 1 +

1464 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange());

1465 }

1466 }

1467

1468 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

1469 if (this_._internal_use_cross() != 0) {

1470 total_size += 1 +

1471 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cross());

1472 }

1473 }

1474

1475 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

1476 if (this_._internal_use_cross_exchange() != 0) {

1477 total_size += 1 +

1478 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cross_exchange());

1479 }

1480 }

1481

1482 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

1483 if (this_._internal_use_two_opt() != 0) {

1484 total_size += 1 +

1485 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_two_opt());

1486 }

1487 }

1488

1489 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

1490 if (this_._internal_use_or_opt() != 0) {

1491 total_size += 1 +

1492 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_or_opt());

1493 }

1494 }

1495 }

1496 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {

1497

1498 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

1499 if (this_._internal_use_lin_kernighan() != 0) {

1500 total_size += 1 +

1501 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_lin_kernighan());

1502 }

1503 }

1504

1505 if (CheckHasBit(cached_has_bits, 0x00000200U)) {

1506 if (this_._internal_use_tsp_opt() != 0) {

1507 total_size += 1 +

1508 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_tsp_opt());

1509 }

1510 }

1511

1512 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

1513 if (this_._internal_use_make_active() != 0) {

1514 total_size += 1 +

1515 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_active());

1516 }

1517 }

1518

1519 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

1520 if (this_._internal_use_make_inactive() != 0) {

1521 total_size += 1 +

1522 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_inactive());

1523 }

1524 }

1525

1526 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

1527 if (this_._internal_use_make_chain_inactive() != 0) {

1528 total_size += 1 +

1529 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_make_chain_inactive());

1530 }

1531 }

1532

1533 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

1534 if (this_._internal_use_swap_active() != 0) {

1535 total_size += 1 +

1536 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_swap_active());

1537 }

1538 }

1539

1540 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

1541 if (this_._internal_use_extended_swap_active() != 0) {

1542 total_size += 1 +

1543 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_extended_swap_active());

1544 }

1545 }

1546

1547 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

1548 if (this_._internal_use_path_lns() != 0) {

1549 total_size += 2 +

1550 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_path_lns());

1551 }

1552 }

1553 }

1554 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {

1555

1556 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

1557 if (this_._internal_use_full_path_lns() != 0) {

1558 total_size += 2 +

1559 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_full_path_lns());

1560 }

1561 }

1562

1563 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

1564 if (this_._internal_use_tsp_lns() != 0) {

1565 total_size += 2 +

1566 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_tsp_lns());

1567 }

1568 }

1569

1570 if (CheckHasBit(cached_has_bits, 0x00040000U)) {

1571 if (this_._internal_use_inactive_lns() != 0) {

1572 total_size += 2 +

1573 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_inactive_lns());

1574 }

1575 }

1576

1577 if (CheckHasBit(cached_has_bits, 0x00080000U)) {

1578 if (this_._internal_use_node_pair_swap_active() != 0) {

1579 total_size += 2 +

1580 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_node_pair_swap_active());

1581 }

1582 }

1583

1584 if (CheckHasBit(cached_has_bits, 0x00100000U)) {

1585 if (this_._internal_use_relocate_and_make_active() != 0) {

1586 total_size += 2 +

1587 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_and_make_active());

1588 }

1589 }

1590

1591 if (CheckHasBit(cached_has_bits, 0x00200000U)) {

1592 if (this_._internal_use_exchange_pair() != 0) {

1593 total_size += 2 +

1594 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_pair());

1595 }

1596 }

1597

1598 if (CheckHasBit(cached_has_bits, 0x00400000U)) {

1599 if (this_._internal_use_relocate_expensive_chain() != 0) {

1600 total_size += 2 +

1601 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_expensive_chain());

1602 }

1603 }

1604

1605 if (CheckHasBit(cached_has_bits, 0x00800000U)) {

1606 if (this_._internal_use_light_relocate_pair() != 0) {

1607 total_size += 2 +

1608 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_light_relocate_pair());

1609 }

1610 }

1611 }

1612 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {

1613

1614 if (CheckHasBit(cached_has_bits, 0x01000000U)) {

1615 if (this_._internal_use_relocate_subtrip() != 0) {

1616 total_size += 2 +

1617 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_subtrip());

1618 }

1619 }

1620

1621 if (CheckHasBit(cached_has_bits, 0x02000000U)) {

1622 if (this_._internal_use_exchange_subtrip() != 0) {

1623 total_size += 2 +

1624 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_subtrip());

1625 }

1626 }

1627

1628 if (CheckHasBit(cached_has_bits, 0x04000000U)) {

1629 if (this_._internal_use_global_cheapest_insertion_path_lns() != 0) {

1630 total_size += 2 +

1631 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_path_lns());

1632 }

1633 }

1634

1635 if (CheckHasBit(cached_has_bits, 0x08000000U)) {

1636 if (this_._internal_use_local_cheapest_insertion_path_lns() != 0) {

1637 total_size += 2 +

1638 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_path_lns());

1639 }

1640 }

1641

1642 if (CheckHasBit(cached_has_bits, 0x10000000U)) {

1643 if (this_._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {

1644 total_size += 2 +

1645 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_expensive_chain_lns());

1646 }

1647 }

1648

1649 if (CheckHasBit(cached_has_bits, 0x20000000U)) {

1650 if (this_._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {

1651 total_size += 2 +

1652 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_expensive_chain_lns());

1653 }

1654 }

1655

1656 if (CheckHasBit(cached_has_bits, 0x40000000U)) {

1657 if (this_._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {

1658 total_size += 2 +

1659 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_close_nodes_lns());

1660 }

1661 }

1662

1663 if (CheckHasBit(cached_has_bits, 0x80000000U)) {

1664 if (this_._internal_use_local_cheapest_insertion_visit_types_lns() != 0) {

1665 total_size += 2 +

1666 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_visit_types_lns());

1667 }

1668 }

1669 }

1670 cached_has_bits = this_._impl_._has_bits_[1];

1671 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

1672

1673 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

1674 if (this_._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {

1675 total_size += 2 +

1676 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_local_cheapest_insertion_close_nodes_lns());

1677 }

1678 }

1679

1680 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

1681 if (this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {

1682 total_size += 2 +

1683 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed());

1684 }

1685 }

1686

1687 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

1688 if (this_._internal_use_shortest_path_swap_active() != 0) {

1689 total_size += 2 +

1690 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_shortest_path_swap_active());

1691 }

1692 }

1693

1694 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

1695 if (this_._internal_use_swap_active_chain() != 0) {

1696 total_size += 2 +

1697 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_swap_active_chain());

1698 }

1699 }

1700

1701 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

1702 if (this_._internal_use_shortest_path_two_opt() != 0) {

1703 total_size += 2 +

1704 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_shortest_path_two_opt());

1705 }

1706 }

1707

1708 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

1709 if (this_._internal_use_exchange_and_make_active() != 0) {

1710 total_size += 2 +

1711 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_and_make_active());

1712 }

1713 }

1714

1715 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

1716 if (this_._internal_use_exchange_path_start_ends_and_make_active() != 0) {

1717 total_size += 2 +

1718 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_exchange_path_start_ends_and_make_active());

1719 }

1720 }

1721

1722 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

1723 if (this_._internal_use_global_cheapest_insertion_visit_types_lns() != 0) {

1724 total_size += 2 +

1725 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_global_cheapest_insertion_visit_types_lns());

1726 }

1727 }

1728 }

1729 return this_.MaybeComputeUnknownFieldsSize(total_size,

1730 &this_._impl_._cached_size_);

1731}

1732

1733void RoutingSearchParameters_LocalSearchNeighborhoodOperators::MergeImpl(::google::protobuf::MessageLite& to_msg,

1734 const ::google::protobuf::MessageLite& from_msg) {

1735 auto* const _this =

1738 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

1739 from.CheckHasBitConsistency();

1740 }

1741

1742 ABSL_DCHECK_NE(&from, _this);

1743 ::uint32_t cached_has_bits = 0;

1744 (void)cached_has_bits;

1745

1746 cached_has_bits = from._impl_._has_bits_[0];

1747 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

1748 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

1749 if (from._internal_use_relocate() != 0) {

1750 _this->_impl_.use_relocate_ = from._impl_.use_relocate_;

1751 }

1752 }

1753 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

1754 if (from._internal_use_relocate_pair() != 0) {

1755 _this->_impl_.use_relocate_pair_ = from._impl_.use_relocate_pair_;

1756 }

1757 }

1758 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

1759 if (from._internal_use_relocate_neighbors() != 0) {

1760 _this->_impl_.use_relocate_neighbors_ = from._impl_.use_relocate_neighbors_;

1761 }

1762 }

1763 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

1764 if (from._internal_use_exchange() != 0) {

1765 _this->_impl_.use_exchange_ = from._impl_.use_exchange_;

1766 }

1767 }

1768 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

1769 if (from._internal_use_cross() != 0) {

1770 _this->_impl_.use_cross_ = from._impl_.use_cross_;

1771 }

1772 }

1773 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

1774 if (from._internal_use_cross_exchange() != 0) {

1775 _this->_impl_.use_cross_exchange_ = from._impl_.use_cross_exchange_;

1776 }

1777 }

1778 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

1779 if (from._internal_use_two_opt() != 0) {

1780 _this->_impl_.use_two_opt_ = from._impl_.use_two_opt_;

1781 }

1782 }

1783 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

1784 if (from._internal_use_or_opt() != 0) {

1785 _this->_impl_.use_or_opt_ = from._impl_.use_or_opt_;

1786 }

1787 }

1788 }

1789 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {

1790 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

1791 if (from._internal_use_lin_kernighan() != 0) {

1792 _this->_impl_.use_lin_kernighan_ = from._impl_.use_lin_kernighan_;

1793 }

1794 }

1795 if (CheckHasBit(cached_has_bits, 0x00000200U)) {

1796 if (from._internal_use_tsp_opt() != 0) {

1797 _this->_impl_.use_tsp_opt_ = from._impl_.use_tsp_opt_;

1798 }

1799 }

1800 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

1801 if (from._internal_use_make_active() != 0) {

1802 _this->_impl_.use_make_active_ = from._impl_.use_make_active_;

1803 }

1804 }

1805 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

1806 if (from._internal_use_make_inactive() != 0) {

1807 _this->_impl_.use_make_inactive_ = from._impl_.use_make_inactive_;

1808 }

1809 }

1810 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

1811 if (from._internal_use_make_chain_inactive() != 0) {

1812 _this->_impl_.use_make_chain_inactive_ = from._impl_.use_make_chain_inactive_;

1813 }

1814 }

1815 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

1816 if (from._internal_use_swap_active() != 0) {

1817 _this->_impl_.use_swap_active_ = from._impl_.use_swap_active_;

1818 }

1819 }

1820 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

1821 if (from._internal_use_extended_swap_active() != 0) {

1822 _this->_impl_.use_extended_swap_active_ = from._impl_.use_extended_swap_active_;

1823 }

1824 }

1825 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

1826 if (from._internal_use_path_lns() != 0) {

1827 _this->_impl_.use_path_lns_ = from._impl_.use_path_lns_;

1828 }

1829 }

1830 }

1831 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {

1832 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

1833 if (from._internal_use_full_path_lns() != 0) {

1834 _this->_impl_.use_full_path_lns_ = from._impl_.use_full_path_lns_;

1835 }

1836 }

1837 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

1838 if (from._internal_use_tsp_lns() != 0) {

1839 _this->_impl_.use_tsp_lns_ = from._impl_.use_tsp_lns_;

1840 }

1841 }

1842 if (CheckHasBit(cached_has_bits, 0x00040000U)) {

1843 if (from._internal_use_inactive_lns() != 0) {

1844 _this->_impl_.use_inactive_lns_ = from._impl_.use_inactive_lns_;

1845 }

1846 }

1847 if (CheckHasBit(cached_has_bits, 0x00080000U)) {

1848 if (from._internal_use_node_pair_swap_active() != 0) {

1849 _this->_impl_.use_node_pair_swap_active_ = from._impl_.use_node_pair_swap_active_;

1850 }

1851 }

1852 if (CheckHasBit(cached_has_bits, 0x00100000U)) {

1853 if (from._internal_use_relocate_and_make_active() != 0) {

1854 _this->_impl_.use_relocate_and_make_active_ = from._impl_.use_relocate_and_make_active_;

1855 }

1856 }

1857 if (CheckHasBit(cached_has_bits, 0x00200000U)) {

1858 if (from._internal_use_exchange_pair() != 0) {

1859 _this->_impl_.use_exchange_pair_ = from._impl_.use_exchange_pair_;

1860 }

1861 }

1862 if (CheckHasBit(cached_has_bits, 0x00400000U)) {

1863 if (from._internal_use_relocate_expensive_chain() != 0) {

1864 _this->_impl_.use_relocate_expensive_chain_ = from._impl_.use_relocate_expensive_chain_;

1865 }

1866 }

1867 if (CheckHasBit(cached_has_bits, 0x00800000U)) {

1868 if (from._internal_use_light_relocate_pair() != 0) {

1869 _this->_impl_.use_light_relocate_pair_ = from._impl_.use_light_relocate_pair_;

1870 }

1871 }

1872 }

1873 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {

1874 if (CheckHasBit(cached_has_bits, 0x01000000U)) {

1875 if (from._internal_use_relocate_subtrip() != 0) {

1876 _this->_impl_.use_relocate_subtrip_ = from._impl_.use_relocate_subtrip_;

1877 }

1878 }

1879 if (CheckHasBit(cached_has_bits, 0x02000000U)) {

1880 if (from._internal_use_exchange_subtrip() != 0) {

1881 _this->_impl_.use_exchange_subtrip_ = from._impl_.use_exchange_subtrip_;

1882 }

1883 }

1884 if (CheckHasBit(cached_has_bits, 0x04000000U)) {

1885 if (from._internal_use_global_cheapest_insertion_path_lns() != 0) {

1886 _this->_impl_.use_global_cheapest_insertion_path_lns_ = from._impl_.use_global_cheapest_insertion_path_lns_;

1887 }

1888 }

1889 if (CheckHasBit(cached_has_bits, 0x08000000U)) {

1890 if (from._internal_use_local_cheapest_insertion_path_lns() != 0) {

1891 _this->_impl_.use_local_cheapest_insertion_path_lns_ = from._impl_.use_local_cheapest_insertion_path_lns_;

1892 }

1893 }

1894 if (CheckHasBit(cached_has_bits, 0x10000000U)) {

1895 if (from._internal_use_global_cheapest_insertion_expensive_chain_lns() != 0) {

1896 _this->_impl_.use_global_cheapest_insertion_expensive_chain_lns_ = from._impl_.use_global_cheapest_insertion_expensive_chain_lns_;

1897 }

1898 }

1899 if (CheckHasBit(cached_has_bits, 0x20000000U)) {

1900 if (from._internal_use_local_cheapest_insertion_expensive_chain_lns() != 0) {

1901 _this->_impl_.use_local_cheapest_insertion_expensive_chain_lns_ = from._impl_.use_local_cheapest_insertion_expensive_chain_lns_;

1902 }

1903 }

1904 if (CheckHasBit(cached_has_bits, 0x40000000U)) {

1905 if (from._internal_use_global_cheapest_insertion_close_nodes_lns() != 0) {

1906 _this->_impl_.use_global_cheapest_insertion_close_nodes_lns_ = from._impl_.use_global_cheapest_insertion_close_nodes_lns_;

1907 }

1908 }

1909 if (CheckHasBit(cached_has_bits, 0x80000000U)) {

1910 if (from._internal_use_local_cheapest_insertion_visit_types_lns() != 0) {

1911 _this->_impl_.use_local_cheapest_insertion_visit_types_lns_ = from._impl_.use_local_cheapest_insertion_visit_types_lns_;

1912 }

1913 }

1914 }

1915 cached_has_bits = from._impl_._has_bits_[1];

1916 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

1917 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

1918 if (from._internal_use_local_cheapest_insertion_close_nodes_lns() != 0) {

1919 _this->_impl_.use_local_cheapest_insertion_close_nodes_lns_ = from._impl_.use_local_cheapest_insertion_close_nodes_lns_;

1920 }

1921 }

1922 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

1923 if (from._internal_use_relocate_path_global_cheapest_insertion_insert_unperformed() != 0) {

1924 _this->_impl_.use_relocate_path_global_cheapest_insertion_insert_unperformed_ = from._impl_.use_relocate_path_global_cheapest_insertion_insert_unperformed_;

1925 }

1926 }

1927 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

1928 if (from._internal_use_shortest_path_swap_active() != 0) {

1929 _this->_impl_.use_shortest_path_swap_active_ = from._impl_.use_shortest_path_swap_active_;

1930 }

1931 }

1932 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

1933 if (from._internal_use_swap_active_chain() != 0) {

1934 _this->_impl_.use_swap_active_chain_ = from._impl_.use_swap_active_chain_;

1935 }

1936 }

1937 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

1938 if (from._internal_use_shortest_path_two_opt() != 0) {

1939 _this->_impl_.use_shortest_path_two_opt_ = from._impl_.use_shortest_path_two_opt_;

1940 }

1941 }

1942 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

1943 if (from._internal_use_exchange_and_make_active() != 0) {

1944 _this->_impl_.use_exchange_and_make_active_ = from._impl_.use_exchange_and_make_active_;

1945 }

1946 }

1947 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

1948 if (from._internal_use_exchange_path_start_ends_and_make_active() != 0) {

1949 _this->_impl_.use_exchange_path_start_ends_and_make_active_ = from._impl_.use_exchange_path_start_ends_and_make_active_;

1950 }

1951 }

1952 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

1953 if (from._internal_use_global_cheapest_insertion_visit_types_lns() != 0) {

1954 _this->_impl_.use_global_cheapest_insertion_visit_types_lns_ = from._impl_.use_global_cheapest_insertion_visit_types_lns_;

1955 }

1956 }

1957 }

1958 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);

1959 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(

1960 from._internal_metadata_);

1961}

1962

1964

1965 if (&from == this) return;

1968}

1969

1970

1972 using ::std::swap;

1973 _internal_metadata_.InternalSwap(&other->_internal_metadata_);

1974 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);

1975 swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);

1976 ::google::protobuf::internal::memswap<

1980 reinterpret_cast<char*>(&_impl_.use_relocate_),

1981 reinterpret_cast<char*>(&other->_impl_.use_relocate_));

1982}

1983

1985 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());

1986}

1987

1988

1990 public:

1992 decltype(::std::declval<RoutingSearchParameters_ImprovementSearchLimitParameters>()._impl_._has_bits_);

1996

1998#if defined(PROTOBUF_CUSTOM_VTABLE)

2000#else

2001 : ::google::protobuf::Message(arena) {

2002#endif

2003 SharedCtor(arena);

2004

2005}

2008#if defined(PROTOBUF_CUSTOM_VTABLE)

2010#else

2011 : ::google::protobuf::Message(arena),

2012#endif

2014 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(

2015 from._internal_metadata_);

2016}

2017PROTOBUF_NDEBUG_INLINE RoutingSearchParameters_ImprovementSearchLimitParameters::Impl_::Impl_(

2018 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,

2019 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)

2020 : _cached_size_{0} {}

2021

2022inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {

2023 new (&_impl_) Impl_(internal_visibility(), arena);

2024 ::memset(reinterpret_cast<char*>(&_impl_) +

2025 offsetof(Impl_, improvement_rate_coefficient_),

2026 0,

2027 offsetof(Impl_, improvement_rate_solutions_distance_) -

2028 offsetof(Impl_, improvement_rate_coefficient_) +

2029 sizeof(Impl_::improvement_rate_solutions_distance_));

2030}

2032

2033 SharedDtor(*this);

2034}

2035inline void RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor(MessageLite& self) {

2037 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

2038 this_.CheckHasBitConsistency();

2039 }

2040 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();

2041 ABSL_DCHECK(this_.GetArena() == nullptr);

2042 this_._impl_.~Impl_();

2043}

2044

2045inline void* PROTOBUF_NONNULL RoutingSearchParameters_ImprovementSearchLimitParameters::PlacementNew_(

2046 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,

2047 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {

2049}

2050constexpr auto RoutingSearchParameters_ImprovementSearchLimitParameters::InternalNewImpl_() {

2053}

2055 return ::google::protobuf::internal::ClassDataFull{

2056 ::google::protobuf::internal::ClassData{

2058 &_table_.header,

2059 nullptr,

2060 nullptr,

2061 &RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl,

2062 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters_ImprovementSearchLimitParameters>(),

2063#if defined(PROTOBUF_CUSTOM_VTABLE)

2064 &RoutingSearchParameters_ImprovementSearchLimitParameters::SharedDtor,

2067#endif

2069 false,

2070 },

2071 &RoutingSearchParameters_ImprovementSearchLimitParameters::kDescriptorMethods,

2073 nullptr,

2074 };

2075}

2076

2077PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const

2081PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL

2082RoutingSearchParameters_ImprovementSearchLimitParameters::GetClassData() const {

2086}

2087PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1

2088const ::_pbi::TcParseTable<1, 2, 0, 0, 7>

2089RoutingSearchParameters_ImprovementSearchLimitParameters::_table_ = {

2090 {

2092 0,

2093 39, 8,

2094 offsetof(decltype(_table_), field_lookup_table),

2095 4294967295,

2096 offsetof(decltype(_table_), field_entries),

2097 2,

2098 0,

2099 offsetof(decltype(_table_), field_names),

2101 nullptr,

2102 ::_pbi::TcParser::GenericFallback,

2103 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE

2104 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>(),

2105 #endif

2106 }, {{

2107

2108 {::_pbi::TcParser::FastF64S2,

2109 {689, 0, 0,

2111

2112 {::_pbi::TcParser::FastV32S2,

2113 {696, 1, 0,

2115 }}, {{

2116 38, 0, 1,

2117 65532, 0,

2118 65535, 65535

2119 }}, {{

2120

2122

2124 }},

2125

2126 {{

2127 }},

2128};

2130

2131 ::google::protobuf::internal::TSanWrite(&_impl_);

2132 ::uint32_t cached_has_bits = 0;

2133

2134 (void) cached_has_bits;

2135

2136 cached_has_bits = _impl_._has_bits_[0];

2137 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {

2138 ::memset(&_impl_.improvement_rate_coefficient_, 0, static_cast<::size_t>(

2139 reinterpret_cast<char*>(&_impl_.improvement_rate_solutions_distance_) -

2140 reinterpret_cast<char*>(&_impl_.improvement_rate_coefficient_)) + sizeof(_impl_.improvement_rate_solutions_distance_));

2141 }

2142 _impl_._has_bits_.Clear();

2143 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();

2144}

2145

2146#if defined(PROTOBUF_CUSTOM_VTABLE)

2148 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,

2149 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {

2151#else

2153 ::uint8_t* PROTOBUF_NONNULL target,

2154 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {

2156#endif

2157 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

2158 this_.CheckHasBitConsistency();

2159 }

2160

2161 ::uint32_t cached_has_bits = 0;

2162 (void)cached_has_bits;

2163

2164 cached_has_bits = this_._impl_._has_bits_[0];

2165

2166 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

2167 if (::absl::bit_cast<::uint64_t>(this_._internal_improvement_rate_coefficient()) != 0) {

2168 target = stream->EnsureSpace(target);

2169 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

2170 38, this_._internal_improvement_rate_coefficient(), target);

2171 }

2172 }

2173

2174

2175 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

2176 if (this_._internal_improvement_rate_solutions_distance() != 0) {

2177 target = stream->EnsureSpace(target);

2178 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

2179 39, this_._internal_improvement_rate_solutions_distance(), target);

2180 }

2181 }

2182

2183 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {

2184 target =

2185 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(

2186 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);

2187 }

2188

2189 return target;

2190}

2191

2192#if defined(PROTOBUF_CUSTOM_VTABLE)

2195#else

2198#endif

2199

2200 ::size_t total_size = 0;

2201

2202 ::uint32_t cached_has_bits = 0;

2203

2204 (void)cached_has_bits;

2205

2206 ::_pbi::Prefetch5LinesFrom7Lines(&this_);

2207 cached_has_bits = this_._impl_._has_bits_[0];

2208 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {

2209

2210 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

2211 if (::absl::bit_cast<::uint64_t>(this_._internal_improvement_rate_coefficient()) != 0) {

2212 total_size += 10;

2213 }

2214 }

2215

2216 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

2217 if (this_._internal_improvement_rate_solutions_distance() != 0) {

2218 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

2219 this_._internal_improvement_rate_solutions_distance());

2220 }

2221 }

2222 }

2223 return this_.MaybeComputeUnknownFieldsSize(total_size,

2224 &this_._impl_._cached_size_);

2225}

2226

2227void RoutingSearchParameters_ImprovementSearchLimitParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,

2228 const ::google::protobuf::MessageLite& from_msg) {

2229 auto* const _this =

2232 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

2233 from.CheckHasBitConsistency();

2234 }

2235

2236 ABSL_DCHECK_NE(&from, _this);

2237 ::uint32_t cached_has_bits = 0;

2238 (void)cached_has_bits;

2239

2240 cached_has_bits = from._impl_._has_bits_[0];

2241 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {

2242 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

2243 if (::absl::bit_cast<::uint64_t>(from._internal_improvement_rate_coefficient()) != 0) {

2244 _this->_impl_.improvement_rate_coefficient_ = from._impl_.improvement_rate_coefficient_;

2245 }

2246 }

2247 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

2248 if (from._internal_improvement_rate_solutions_distance() != 0) {

2249 _this->_impl_.improvement_rate_solutions_distance_ = from._impl_.improvement_rate_solutions_distance_;

2250 }

2251 }

2252 }

2253 _this->_impl_._has_bits_[0] |= cached_has_bits;

2254 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(

2255 from._internal_metadata_);

2256}

2257

2259

2260 if (&from == this) return;

2263}

2264

2265

2267 using ::std::swap;

2268 _internal_metadata_.InternalSwap(&other->_internal_metadata_);

2269 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);

2270 ::google::protobuf::internal::memswap<

2274 reinterpret_cast<char*>(&_impl_.improvement_rate_coefficient_),

2275 reinterpret_cast<char*>(&other->_impl_.improvement_rate_coefficient_));

2276}

2277

2279 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());

2284 public:

2285 using HasBits =

2286 decltype(::std::declval<RoutingSearchParameters>()._impl_._has_bits_);

2289};

2292 ::google::protobuf::internal::TSanWrite(&_impl_);

2293 if (_impl_.savings_parameters_ != nullptr) _impl_.savings_parameters_->Clear();

2295 0x00000004U);

2296}

2298 ::google::protobuf::internal::TSanWrite(&_impl_);

2299 if (_impl_.global_cheapest_insertion_first_solution_parameters_ != nullptr) _impl_.global_cheapest_insertion_first_solution_parameters_->Clear();

2301 0x00000010U);

2302}

2304 ::google::protobuf::internal::TSanWrite(&_impl_);

2305 if (_impl_.global_cheapest_insertion_ls_operator_parameters_ != nullptr) _impl_.global_cheapest_insertion_ls_operator_parameters_->Clear();

2307 0x00000008U);

2308}

2310 ::google::protobuf::internal::TSanWrite(&_impl_);

2311 if (_impl_.local_cheapest_insertion_parameters_ != nullptr) _impl_.local_cheapest_insertion_parameters_->Clear();

2313 0x00000001U);

2314}

2316 ::google::protobuf::internal::TSanWrite(&_impl_);

2317 if (_impl_.local_cheapest_cost_insertion_parameters_ != nullptr) _impl_.local_cheapest_cost_insertion_parameters_->Clear();

2319 0x00000002U);

2320}

2322 ::google::protobuf::internal::TSanWrite(&_impl_);

2323 if (_impl_.sat_parameters_ != nullptr) _impl_.sat_parameters_->Clear();

2325 0x40000000U);

2326}

2328 ::google::protobuf::internal::TSanWrite(&_impl_);

2329 if (_impl_.time_limit_ != nullptr) _impl_.time_limit_->Clear();

2331 0x00000002U);

2332}

2334 ::google::protobuf::internal::TSanWrite(&_impl_);

2335 if (_impl_.lns_time_limit_ != nullptr) _impl_.lns_time_limit_->Clear();

2337 0x00000004U);

2338}

2340 ::google::protobuf::internal::TSanWrite(&_impl_);

2341 if (_impl_.iterated_local_search_parameters_ != nullptr) _impl_.iterated_local_search_parameters_->Clear();

2343 0x80000000U);

2344}

2346#if defined(PROTOBUF_CUSTOM_VTABLE)

2348#else

2349 : ::google::protobuf::Message(arena) {

2350#endif

2351 SharedCtor(arena);

2352

2353}

2354PROTOBUF_NDEBUG_INLINE RoutingSearchParameters::Impl_::Impl_(

2355 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,

2356 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,

2357 [[maybe_unused]] const ::operations_research::RoutingSearchParameters& from_msg)

2358 : _has_bits_{from._has_bits_},

2359 _cached_size_{0},

2360 local_search_metaheuristics_{visibility, arena, from.local_search_metaheuristics_},

2361 _local_search_metaheuristics_cached_byte_size_{0},

2362 log_tag_(arena, from.log_tag_) {}

2363

2365 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,

2367#if defined(PROTOBUF_CUSTOM_VTABLE)

2369#else

2370 : ::google::protobuf::Message(arena) {

2371#endif

2373 (void)_this;

2374 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(

2375 from._internal_metadata_);

2376 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

2377 ::uint32_t cached_has_bits = _impl_._has_bits_[0];

2378 _impl_.local_search_operators_ = (CheckHasBit(cached_has_bits, 0x00000001U))

2379 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_search_operators_)

2380 : nullptr;

2381 _impl_.time_limit_ = (CheckHasBit(cached_has_bits, 0x00000002U))

2382 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.time_limit_)

2383 : nullptr;

2384 _impl_.lns_time_limit_ = (CheckHasBit(cached_has_bits, 0x00000004U))

2385 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lns_time_limit_)

2386 : nullptr;

2387 _impl_.improvement_limit_parameters_ = (CheckHasBit(cached_has_bits, 0x00000008U))

2388 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.improvement_limit_parameters_)

2389 : nullptr;

2390 _impl_.global_cheapest_insertion_first_solution_parameters_ = (CheckHasBit(cached_has_bits, 0x00000010U))

2391 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.global_cheapest_insertion_first_solution_parameters_)

2392 : nullptr;

2393 ::memcpy(reinterpret_cast<char*>(&_impl_) +

2394 offsetof(Impl_, first_solution_strategy_),

2395 reinterpret_cast<const char*>(&from._impl_) +

2396 offsetof(Impl_, first_solution_strategy_),

2397 offsetof(Impl_, use_generalized_cp_sat_) -

2398 offsetof(Impl_, first_solution_strategy_) +

2399 sizeof(Impl_::use_generalized_cp_sat_));

2400 _impl_.sat_parameters_ = (CheckHasBit(cached_has_bits, 0x40000000U))

2401 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sat_parameters_)

2402 : nullptr;

2403 _impl_.iterated_local_search_parameters_ = (CheckHasBit(cached_has_bits, 0x80000000U))

2404 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.iterated_local_search_parameters_)

2405 : nullptr;

2406 cached_has_bits = _impl_._has_bits_[1];

2407 _impl_.local_cheapest_insertion_parameters_ = (CheckHasBit(cached_has_bits, 0x00000001U))

2408 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_cheapest_insertion_parameters_)

2409 : nullptr;

2410 _impl_.local_cheapest_cost_insertion_parameters_ = (CheckHasBit(cached_has_bits, 0x00000002U))

2411 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_cheapest_cost_insertion_parameters_)

2412 : nullptr;

2413 _impl_.savings_parameters_ = (CheckHasBit(cached_has_bits, 0x00000004U))

2414 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.savings_parameters_)

2415 : nullptr;

2416 _impl_.global_cheapest_insertion_ls_operator_parameters_ = (CheckHasBit(cached_has_bits, 0x00000008U))

2417 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.global_cheapest_insertion_ls_operator_parameters_)

2418 : nullptr;

2419 ::memcpy(reinterpret_cast<char*>(&_impl_) +

2420 offsetof(Impl_, continuous_scheduling_solver_),

2421 reinterpret_cast<const char*>(&from._impl_) +

2422 offsetof(Impl_, continuous_scheduling_solver_),

2423 offsetof(Impl_, max_swap_active_chain_size_) -

2424 offsetof(Impl_, continuous_scheduling_solver_) +

2425 sizeof(Impl_::max_swap_active_chain_size_));

2426

2427

2428}

2429PROTOBUF_NDEBUG_INLINE RoutingSearchParameters::Impl_::Impl_(

2430 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,

2431 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)

2432 : _cached_size_{0},

2433 local_search_metaheuristics_{visibility, arena},

2434 _local_search_metaheuristics_cached_byte_size_{0},

2435 log_tag_(arena) {}

2436

2437inline void RoutingSearchParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {

2438 new (&_impl_) Impl_(internal_visibility(), arena);

2439 ::memset(reinterpret_cast<char*>(&_impl_) +

2440 offsetof(Impl_, local_search_operators_),

2441 0,

2442 offsetof(Impl_, use_generalized_cp_sat_) -

2443 offsetof(Impl_, local_search_operators_) +

2444 sizeof(Impl_::use_generalized_cp_sat_));

2445 ::memset(reinterpret_cast<char*>(&_impl_) +

2446 offsetof(Impl_, sat_parameters_),

2447 0,

2448 offsetof(Impl_, max_swap_active_chain_size_) -

2449 offsetof(Impl_, sat_parameters_) +

2450 sizeof(Impl_::max_swap_active_chain_size_));

2451}

2453

2454 SharedDtor(*this);

2456inline void RoutingSearchParameters::SharedDtor(MessageLite& self) {

2458 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

2459 this_.CheckHasBitConsistency();

2460 }

2461 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();

2462 ABSL_DCHECK(this_.GetArena() == nullptr);

2463 delete this_._impl_.local_search_operators_;

2464 delete this_._impl_.time_limit_;

2465 delete this_._impl_.lns_time_limit_;

2466 delete this_._impl_.improvement_limit_parameters_;

2467 delete this_._impl_.global_cheapest_insertion_first_solution_parameters_;

2468 this_._impl_.log_tag_.Destroy();

2469 delete this_._impl_.sat_parameters_;

2470 delete this_._impl_.iterated_local_search_parameters_;

2471 delete this_._impl_.local_cheapest_insertion_parameters_;

2472 delete this_._impl_.local_cheapest_cost_insertion_parameters_;

2473 delete this_._impl_.savings_parameters_;

2474 delete this_._impl_.global_cheapest_insertion_ls_operator_parameters_;

2475 this_._impl_.~Impl_();

2476}

2477

2478inline void* PROTOBUF_NONNULL RoutingSearchParameters::PlacementNew_(

2479 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,

2480 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {

2482}

2483constexpr auto RoutingSearchParameters::InternalNewImpl_() {

2484 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({

2487 InternalGetArenaOffset(

2488 ::google::protobuf::Message::internal_visibility()),

2489 });

2490 if (arena_bits.has_value()) {

2491 return ::google::protobuf::internal::MessageCreator::CopyInit(

2492 sizeof(RoutingSearchParameters), alignof(RoutingSearchParameters), *arena_bits);

2493 } else {

2494 return ::google::protobuf::internal::MessageCreator(&RoutingSearchParameters::PlacementNew_,

2495 sizeof(RoutingSearchParameters),

2496 alignof(RoutingSearchParameters));

2497 }

2498}

2500 return ::google::protobuf::internal::ClassDataFull{

2501 ::google::protobuf::internal::ClassData{

2503 &_table_.header,

2504 nullptr,

2505 nullptr,

2506 &RoutingSearchParameters::MergeImpl,

2507 ::google::protobuf::Message::GetNewImpl<RoutingSearchParameters>(),

2508#if defined(PROTOBUF_CUSTOM_VTABLE)

2509 &RoutingSearchParameters::SharedDtor,

2512#endif

2514 false,

2515 },

2516 &RoutingSearchParameters::kDescriptorMethods,

2518 nullptr,

2519 };

2520}

2521

2522PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const

2525

2526PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL

2527RoutingSearchParameters::GetClassData() const {

2531}

2532PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1

2533const ::_pbi::TcParseTable<5, 50, 11, 107, 11>

2534RoutingSearchParameters::_table_ = {

2535 {

2537 0,

2538 72, 248,

2539 offsetof(decltype(_table_), field_lookup_table),

2540 1138157568,

2541 offsetof(decltype(_table_), field_entries),

2542 50,

2543 11,

2544 offsetof(decltype(_table_), aux_entries),

2546 nullptr,

2547 ::_pbi::TcParser::GenericFallback,

2548 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE

2549 ::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters>(),

2550 #endif

2551 }, {{

2552 {::_pbi::TcParser::MiniParse, {}},

2553

2554 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RoutingSearchParameters, _impl_.first_solution_strategy_), 5>(),

2555 {8, 5, 0,

2557

2558 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(RoutingSearchParameters, _impl_.use_unfiltered_first_solution_strategy_), 10>(),

2559 {16, 10, 0,

2561

2562 {::_pbi::TcParser::FastMtS1,

2563 {26, 0, 0,

2565

2566 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RoutingSearchParameters, _impl_.local_search_metaheuristic_), 6>(),

2567 {32, 6, 0,

2569

2570 {::_pbi::TcParser::FastF64S1,

2571 {41, 7, 0,

2573

2574 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(RoutingSearchParameters, _impl_.use_depth_first_search_), 11>(),

2575 {48, 11, 0,

2577

2578 {::_pbi::TcParser::FastF64S1,

2579 {57, 8, 0,

2581

2582 {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(RoutingSearchParameters, _impl_.solution_limit_), 9>(),

2583 {64, 9, 0,

2585

2586 {::_pbi::TcParser::FastMtS1,

2587 {74, 1, 1,

2589

2590 {::_pbi::TcParser::FastMtS1,

2591 {82, 2, 2,

2593

2594 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(RoutingSearchParameters, _impl_.use_full_propagation_), 12>(),

2595 {88, 12, 0,

2597 {::_pbi::TcParser::MiniParse, {}},

2598

2600 {104, 13, 0,

2602 {::_pbi::TcParser::MiniParse, {}},

2603 {::_pbi::TcParser::MiniParse, {}},

2604

2605 {::_pbi::TcParser::FastV32S2,

2606 {640, 20, 0,

2608

2609 {::_pbi::TcParser::FastV32S2,

2610 {392, 14, 0,

2612

2613 {::_pbi::TcParser::FastV32S2,

2614 {656, 21, 0,

2616

2617 {::_pbi::TcParser::FastV32S2,

2618 {664, 22, 0,

2620

2621 {::_pbi::TcParser::FastV32S2,

2622 {416, 16, 0,

2624

2625 {::_pbi::TcParser::FastMtS2,

2626 {682, 3, 3,

2628

2629 {::_pbi::TcParser::FastF64S2,

2630 {433, 15, 0,

2632

2633 {::_pbi::TcParser::FastMtS2,

2634 {1210, 4, 9,

2636

2637 {::_pbi::TcParser::FastV8S2,

2638 {960, 26, 0,

2640

2641 {::_pbi::TcParser::FastV8S2,

2642 {712, 25, 0,

2644

2645 {::_pbi::TcParser::FastF64S2,

2646 {721, 23, 0,

2647 PROTOBUF_FIELD_OFFSET(RoutingSearchParameters, _impl_.multi_armed_bandit_compound_operator_memory_coefficient_)}},

2648

2649 {::_pbi::TcParser::FastV32S2,

2650 {472, 17, 0,

2652

2653 {::_pbi::TcParser::FastV32S2,

2654 {480, 19, 0,

2656

2657 {::_pbi::TcParser::FastF64S2,

2658 {489, 18, 0,

2660

2661 {::_pbi::TcParser::FastV8S2,

2662 {496, 24, 0,

2664

2665 {::_pbi::TcParser::FastV32S2,

2666 {760, 27, 0,

2668 }}, {{

2669 33, 0, 3,

2670 14560, 20,

2671 65, 30,

2672 65285, 44,

2673 65535, 65535

2674 }}, {{

2675

2677

2679

2681

2683

2685

2687

2689

2691

2693

2695

2697

2699

2701

2703

2705

2707

2709

2711

2713

2715

2717

2719

2721

2723

2725

2727

2729

2731

2733

2735

2737

2739

2741

2743

2745

2747

2749

2751

2753

2755

2757

2759

2761

2763

2765

2767

2769

2771

2773

2775 }},

2776 {{

2777 {::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_LocalSearchNeighborhoodOperators>()},

2778 {::_pbi::TcParser::GetTable<::google::protobuf::Duration>()},

2779 {::_pbi::TcParser::GetTable<::google::protobuf::Duration>()},

2780 {::_pbi::TcParser::GetTable<::operations_research::RoutingSearchParameters_ImprovementSearchLimitParameters>()},

2781 {::_pbi::TcParser::GetTable<::operations_research::sat::SatParameters>()},

2782 {::_pbi::TcParser::GetTable<::operations_research::IteratedLocalSearchParameters>()},

2783 {::_pbi::TcParser::GetTable<::operations_research::LocalCheapestInsertionParameters>()},

2784 {::_pbi::TcParser::GetTable<::operations_research::LocalCheapestInsertionParameters>()},

2785 {::_pbi::TcParser::GetTable<::operations_research::SavingsParameters>()},

2786 {::_pbi::TcParser::GetTable<::operations_research::GlobalCheapestInsertionParameters>()},

2787 {::_pbi::TcParser::GetTable<::operations_research::GlobalCheapestInsertionParameters>()},

2788 }},

2789 {{

2790 "\53\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"

2791 "operations_research.RoutingSearchParameters"

2792 "log_tag"

2793 }},

2794};

2796

2797 ::google::protobuf::internal::TSanWrite(&_impl_);

2798 ::uint32_t cached_has_bits = 0;

2799

2800 (void) cached_has_bits;

2801

2802 cached_has_bits = _impl_._has_bits_[0];

2803 if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {

2804 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

2805 ABSL_DCHECK(_impl_.local_search_operators_ != nullptr);

2806 _impl_.local_search_operators_->Clear();

2807 }

2808 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

2809 ABSL_DCHECK(_impl_.time_limit_ != nullptr);

2810 _impl_.time_limit_->Clear();

2811 }

2812 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

2813 ABSL_DCHECK(_impl_.lns_time_limit_ != nullptr);

2814 _impl_.lns_time_limit_->Clear();

2815 }

2816 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

2817 ABSL_DCHECK(_impl_.improvement_limit_parameters_ != nullptr);

2818 _impl_.improvement_limit_parameters_->Clear();

2819 }

2820 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

2821 ABSL_DCHECK(_impl_.global_cheapest_insertion_first_solution_parameters_ != nullptr);

2822 _impl_.global_cheapest_insertion_first_solution_parameters_->Clear();

2823 }

2824 }

2825 if (BatchCheckHasBit(cached_has_bits, 0x000000e0U)) {

2826 ::memset(&_impl_.first_solution_strategy_, 0, static_cast<::size_t>(

2827 reinterpret_cast<char*>(&_impl_.guided_local_search_lambda_coefficient_) -

2828 reinterpret_cast<char*>(&_impl_.first_solution_strategy_)) + sizeof(_impl_.guided_local_search_lambda_coefficient_));

2829 }

2830 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {

2831 ::memset(&_impl_.optimization_step_, 0, static_cast<::size_t>(

2832 reinterpret_cast<char*>(&_impl_.log_cost_scaling_factor_) -

2833 reinterpret_cast<char*>(&_impl_.optimization_step_)) + sizeof(_impl_.log_cost_scaling_factor_));

2834 }

2835 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {

2836 ::memset(&_impl_.relocate_expensive_chain_num_arcs_to_consider_, 0, static_cast<::size_t>(

2837 reinterpret_cast<char*>(&_impl_.multi_armed_bandit_compound_operator_memory_coefficient_) -

2838 reinterpret_cast<char*>(&_impl_.relocate_expensive_chain_num_arcs_to_consider_)) + sizeof(_impl_.multi_armed_bandit_compound_operator_memory_coefficient_));

2839 }

2840 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {

2841 ::memset(&_impl_.christofides_use_minimum_matching_, 0, static_cast<::size_t>(

2842 reinterpret_cast<char*>(&_impl_.use_generalized_cp_sat_) -

2843 reinterpret_cast<char*>(&_impl_.christofides_use_minimum_matching_)) + sizeof(_impl_.use_generalized_cp_sat_));

2844 if (CheckHasBitForRepeated(cached_has_bits, 0x10000000U)) {

2845 _impl_.local_search_metaheuristics_.Clear();

2846 }

2847 if (CheckHasBit(cached_has_bits, 0x20000000U)) {

2848 _impl_.log_tag_.ClearNonDefaultToEmpty();

2849 }

2850 if (CheckHasBit(cached_has_bits, 0x40000000U)) {

2851 ABSL_DCHECK(_impl_.sat_parameters_ != nullptr);

2852 _impl_.sat_parameters_->Clear();

2853 }

2854 if (CheckHasBit(cached_has_bits, 0x80000000U)) {

2855 ABSL_DCHECK(_impl_.iterated_local_search_parameters_ != nullptr);

2856 _impl_.iterated_local_search_parameters_->Clear();

2857 }

2858 }

2859 cached_has_bits = _impl_._has_bits_[1];

2860 if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {

2861 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

2862 ABSL_DCHECK(_impl_.local_cheapest_insertion_parameters_ != nullptr);

2863 _impl_.local_cheapest_insertion_parameters_->Clear();

2864 }

2865 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

2866 ABSL_DCHECK(_impl_.local_cheapest_cost_insertion_parameters_ != nullptr);

2867 _impl_.local_cheapest_cost_insertion_parameters_->Clear();

2868 }

2869 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

2870 ABSL_DCHECK(_impl_.savings_parameters_ != nullptr);

2871 _impl_.savings_parameters_->Clear();

2872 }

2873 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

2874 ABSL_DCHECK(_impl_.global_cheapest_insertion_ls_operator_parameters_ != nullptr);

2875 _impl_.global_cheapest_insertion_ls_operator_parameters_->Clear();

2876 }

2877 }

2878 if (BatchCheckHasBit(cached_has_bits, 0x000000f0U)) {

2879 ::memset(&_impl_.continuous_scheduling_solver_, 0, static_cast<::size_t>(

2880 reinterpret_cast<char*>(&_impl_.ls_operator_neighbors_ratio_) -

2881 reinterpret_cast<char*>(&_impl_.continuous_scheduling_solver_)) + sizeof(_impl_.ls_operator_neighbors_ratio_));

2882 }

2883 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {

2884 ::memset(&_impl_.ls_operator_min_neighbors_, 0, static_cast<::size_t>(

2885 reinterpret_cast<char*>(&_impl_.use_guided_local_search_penalties_in_local_search_operators_) -

2886 reinterpret_cast<char*>(&_impl_.ls_operator_min_neighbors_)) + sizeof(_impl_.use_guided_local_search_penalties_in_local_search_operators_));

2887 }

2888 if (BatchCheckHasBit(cached_has_bits, 0x00030000U)) {

2889 ::memset(&_impl_.num_max_local_optima_before_metaheuristic_switch_, 0, static_cast<::size_t>(

2890 reinterpret_cast<char*>(&_impl_.max_swap_active_chain_size_) -

2891 reinterpret_cast<char*>(&_impl_.num_max_local_optima_before_metaheuristic_switch_)) + sizeof(_impl_.max_swap_active_chain_size_));

2892 }

2893 _impl_._has_bits_.Clear();

2894 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();

2895}

2896

2897#if defined(PROTOBUF_CUSTOM_VTABLE)

2899 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,

2900 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {

2902#else

2904 ::uint8_t* PROTOBUF_NONNULL target,

2905 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {

2907#endif

2908 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

2909 this_.CheckHasBitConsistency();

2910 }

2911

2912 ::uint32_t cached_has_bits = 0;

2913 (void)cached_has_bits;

2914

2915 cached_has_bits = this_._impl_._has_bits_[0];

2916

2917 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

2918 if (this_._internal_first_solution_strategy() != 0) {

2919 target = stream->EnsureSpace(target);

2920 target = ::_pbi::WireFormatLite::WriteEnumToArray(

2921 1, this_._internal_first_solution_strategy(), target);

2922 }

2923 }

2924

2925

2926 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

2927 if (this_._internal_use_unfiltered_first_solution_strategy() != 0) {

2928 target = stream->EnsureSpace(target);

2929 target = ::_pbi::WireFormatLite::WriteBoolToArray(

2930 2, this_._internal_use_unfiltered_first_solution_strategy(), target);

2931 }

2932 }

2933

2934

2935 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

2936 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

2937 3, *this_._impl_.local_search_operators_, this_._impl_.local_search_operators_->GetCachedSize(), target,

2938 stream);

2939 }

2940

2941

2942 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

2943 if (this_._internal_local_search_metaheuristic() != 0) {

2944 target = stream->EnsureSpace(target);

2945 target = ::_pbi::WireFormatLite::WriteEnumToArray(

2946 4, this_._internal_local_search_metaheuristic(), target);

2947 }

2948 }

2949

2950

2951 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

2952 if (::absl::bit_cast<::uint64_t>(this_._internal_guided_local_search_lambda_coefficient()) != 0) {

2953 target = stream->EnsureSpace(target);

2954 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

2955 5, this_._internal_guided_local_search_lambda_coefficient(), target);

2956 }

2957 }

2958

2959

2960 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

2961 if (this_._internal_use_depth_first_search() != 0) {

2962 target = stream->EnsureSpace(target);

2963 target = ::_pbi::WireFormatLite::WriteBoolToArray(

2964 6, this_._internal_use_depth_first_search(), target);

2965 }

2966 }

2967

2968

2969 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

2970 if (::absl::bit_cast<::uint64_t>(this_._internal_optimization_step()) != 0) {

2971 target = stream->EnsureSpace(target);

2972 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

2973 7, this_._internal_optimization_step(), target);

2974 }

2975 }

2976

2977

2978 if (CheckHasBit(cached_has_bits, 0x00000200U)) {

2979 if (this_._internal_solution_limit() != 0) {

2980 target =

2981 ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<8>(

2982 stream, this_._internal_solution_limit(), target);

2983 }

2984 }

2985

2986

2987 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

2988 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

2989 9, *this_._impl_.time_limit_, this_._impl_.time_limit_->GetCachedSize(), target,

2990 stream);

2991 }

2992

2993

2994 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

2995 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

2996 10, *this_._impl_.lns_time_limit_, this_._impl_.lns_time_limit_->GetCachedSize(), target,

2997 stream);

2998 }

2999

3000

3001 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

3002 if (this_._internal_use_full_propagation() != 0) {

3003 target = stream->EnsureSpace(target);

3004 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3005 11, this_._internal_use_full_propagation(), target);

3006 }

3007 }

3008

3009

3010 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

3011 if (this_._internal_log_search() != 0) {

3012 target = stream->EnsureSpace(target);

3013 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3014 13, this_._internal_log_search(), target);

3015 }

3016 }

3017

3018

3019 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

3020 if (this_._internal_number_of_solutions_to_collect() != 0) {

3021 target = stream->EnsureSpace(target);

3022 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3023 17, this_._internal_number_of_solutions_to_collect(), target);

3024 }

3025 }

3026

3027

3028 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

3029 if (this_._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {

3030 target = stream->EnsureSpace(target);

3031 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3032 20, this_._internal_relocate_expensive_chain_num_arcs_to_consider(), target);

3033 }

3034 }

3035

3036

3037 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

3038 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_scaling_factor()) != 0) {

3039 target = stream->EnsureSpace(target);

3040 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

3041 22, this_._internal_log_cost_scaling_factor(), target);

3042 }

3043 }

3044

3045

3046 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

3047 if (this_._internal_use_cp_sat() != 0) {

3048 target = stream->EnsureSpace(target);

3049 target = ::_pbi::WireFormatLite::WriteEnumToArray(

3050 27, this_._internal_use_cp_sat(), target);

3051 }

3052 }

3053

3054

3055 if (CheckHasBit(cached_has_bits, 0x00080000U)) {

3056 if (this_._internal_use_cp() != 0) {

3057 target = stream->EnsureSpace(target);

3058 target = ::_pbi::WireFormatLite::WriteEnumToArray(

3059 28, this_._internal_use_cp(), target);

3060 }

3061 }

3062

3063

3064 if (CheckHasBit(cached_has_bits, 0x00040000U)) {

3065 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_offset()) != 0) {

3066 target = stream->EnsureSpace(target);

3067 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

3068 29, this_._internal_log_cost_offset(), target);

3069 }

3070 }

3071

3072

3073 if (CheckHasBit(cached_has_bits, 0x01000000U)) {

3074 if (this_._internal_christofides_use_minimum_matching() != 0) {

3075 target = stream->EnsureSpace(target);

3076 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3077 30, this_._internal_christofides_use_minimum_matching(), target);

3078 }

3079 }

3080

3081

3082 if (CheckHasBit(cached_has_bits, 0x00100000U)) {

3083 if (this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {

3084 target = stream->EnsureSpace(target);

3085 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3086 32, this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider(), target);

3087 }

3088 }

3089

3090 cached_has_bits = this_._impl_._has_bits_[1];

3091

3092 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

3093 if (this_._internal_continuous_scheduling_solver() != 0) {

3094 target = stream->EnsureSpace(target);

3095 target = ::_pbi::WireFormatLite::WriteEnumToArray(

3096 33, this_._internal_continuous_scheduling_solver(), target);

3097 }

3098 }

3099

3100 cached_has_bits = this_._impl_._has_bits_[0];

3101

3102 if (CheckHasBit(cached_has_bits, 0x00200000U)) {

3103 if (this_._internal_mixed_integer_scheduling_solver() != 0) {

3104 target = stream->EnsureSpace(target);

3105 target = ::_pbi::WireFormatLite::WriteEnumToArray(

3106 34, this_._internal_mixed_integer_scheduling_solver(), target);

3107 }

3108 }

3109

3110

3111 if (CheckHasBit(cached_has_bits, 0x00400000U)) {

3112 if (this_._internal_heuristic_close_nodes_lns_num_nodes() != 0) {

3113 target = stream->EnsureSpace(target);

3114 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3115 35, this_._internal_heuristic_close_nodes_lns_num_nodes(), target);

3116 }

3117 }

3118

3119

3120 if (CheckHasBit(cached_has_bits, 0x20000000U)) {

3121 if (!this_._internal_log_tag().empty()) {

3122 const ::std::string& _s = this_._internal_log_tag();

3123 ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(

3124 _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "operations_research.RoutingSearchParameters.log_tag");

3125 target = stream->WriteStringMaybeAliased(36, _s, target);

3126 }

3127 }

3128

3129

3130 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

3131 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

3132 37, *this_._impl_.improvement_limit_parameters_, this_._impl_.improvement_limit_parameters_->GetCachedSize(), target,

3133 stream);

3134 }

3135

3136

3137 if (CheckHasBit(cached_has_bits, 0x02000000U)) {

3138 if (this_._internal_use_multi_armed_bandit_concatenate_operators() != 0) {

3139 target = stream->EnsureSpace(target);

3140 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3141 41, this_._internal_use_multi_armed_bandit_concatenate_operators(), target);

3142 }

3143 }

3144

3145

3146 if (CheckHasBit(cached_has_bits, 0x00800000U)) {

3147 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {

3148 target = stream->EnsureSpace(target);

3149 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

3150 42, this_._internal_multi_armed_bandit_compound_operator_memory_coefficient(), target);

3151 }

3152 }

3153

3154 cached_has_bits = this_._impl_._has_bits_[1];

3155

3156 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

3157 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {

3158 target = stream->EnsureSpace(target);

3159 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

3160 43, this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient(), target);

3161 }

3162 }

3163

3164 cached_has_bits = this_._impl_._has_bits_[0];

3165

3166 if (CheckHasBit(cached_has_bits, 0x08000000U)) {

3167 if (this_._internal_use_generalized_cp_sat() != 0) {

3168 target = stream->EnsureSpace(target);

3169 target = ::_pbi::WireFormatLite::WriteEnumToArray(

3170 47, this_._internal_use_generalized_cp_sat(), target);

3171 }

3172 }

3173

3174

3175 if (CheckHasBit(cached_has_bits, 0x40000000U)) {

3176 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

3178 stream);

3179 }

3180

3181 cached_has_bits = this_._impl_._has_bits_[1];

3182

3183 if (CheckHasBit(cached_has_bits, 0x00000200U)) {

3184 target = stream->EnsureSpace(target);

3185 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3186 50, this_._internal_disable_scheduling_beware_this_may_degrade_performance(), target);

3187 }

3188

3189

3190 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

3191 if (this_._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {

3192 target = stream->EnsureSpace(target);

3193 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3194 51, this_._internal_guided_local_search_reset_penalties_on_new_best_solution(), target);

3195 }

3196 }

3197

3198

3199 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

3200 if (this_._internal_fallback_to_cp_sat_size_threshold() != 0) {

3201 target = stream->EnsureSpace(target);

3202 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3203 52, this_._internal_fallback_to_cp_sat_size_threshold(), target);

3204 }

3205 }

3206

3207

3208 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

3209 if (::absl::bit_cast<::uint64_t>(this_._internal_ls_operator_neighbors_ratio()) != 0) {

3210 target = stream->EnsureSpace(target);

3211 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

3212 53, this_._internal_ls_operator_neighbors_ratio(), target);

3213 }

3214 }

3215

3216

3217 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

3218 if (this_._internal_ls_operator_min_neighbors() != 0) {

3219 target = stream->EnsureSpace(target);

3220 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3221 54, this_._internal_ls_operator_min_neighbors(), target);

3222 }

3223 }

3224

3225 cached_has_bits = this_._impl_._has_bits_[0];

3226

3227 if (CheckHasBit(cached_has_bits, 0x04000000U)) {

3228 if (this_._internal_report_intermediate_cp_sat_solutions() != 0) {

3229 target = stream->EnsureSpace(target);

3230 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3231 56, this_._internal_report_intermediate_cp_sat_solutions(), target);

3232 }

3233 }

3234

3235 cached_has_bits = this_._impl_._has_bits_[1];

3236

3237 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

3238 if (::absl::bit_cast<::uint64_t>(this_._internal_secondary_ls_time_limit_ratio()) != 0) {

3239 target = stream->EnsureSpace(target);

3240 target = ::_pbi::WireFormatLite::WriteDoubleToArray(

3241 57, this_._internal_secondary_ls_time_limit_ratio(), target);

3242 }

3243 }

3244

3245

3246 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

3247 if (this_._internal_use_iterated_local_search() != 0) {

3248 target = stream->EnsureSpace(target);

3249 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3250 58, this_._internal_use_iterated_local_search(), target);

3251 }

3252 }

3253

3254

3255 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

3256 if (this_._internal_first_solution_optimization_period() != 0) {

3257 target = stream->EnsureSpace(target);

3258 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3259 59, this_._internal_first_solution_optimization_period(), target);

3260 }

3261 }

3262

3263 cached_has_bits = this_._impl_._has_bits_[0];

3264

3265 if (CheckHasBit(cached_has_bits, 0x80000000U)) {

3266 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

3267 60, *this_._impl_.iterated_local_search_parameters_, this_._impl_.iterated_local_search_parameters_->GetCachedSize(), target,

3268 stream);

3269 }

3270

3271 cached_has_bits = this_._impl_._has_bits_[1];

3272

3273 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

3274 if (this_._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {

3275 target = stream->EnsureSpace(target);

3276 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3277 61, this_._internal_guided_local_search_penalize_with_vehicle_classes(), target);

3278 }

3279 }

3280

3281

3282 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

3283 if (this_._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {

3284 target = stream->EnsureSpace(target);

3285 target = ::_pbi::WireFormatLite::WriteBoolToArray(

3286 62, this_._internal_use_guided_local_search_penalties_in_local_search_operators(), target);

3287 }

3288 }

3289

3290 cached_has_bits = this_._impl_._has_bits_[0];

3291

3292 if (CheckHasBitForRepeated(cached_has_bits, 0x10000000U)) {

3293 {

3294 ::size_t byte_size = this_._impl_._local_search_metaheuristics_cached_byte_size_.Get();

3295 if (byte_size > 0) {

3296 target = stream->WriteEnumPacked(

3297 63, this_._internal_local_search_metaheuristics(), byte_size, target);

3298 }

3299 }

3300 }

3301

3302 cached_has_bits = this_._impl_._has_bits_[1];

3303

3304 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

3305 if (this_._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {

3306 target = stream->EnsureSpace(target);

3307 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3308 64, this_._internal_num_max_local_optima_before_metaheuristic_switch(), target);

3309 }

3310 }

3311

3312

3313 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

3314 if (this_._internal_max_swap_active_chain_size() != 0) {

3315 target = stream->EnsureSpace(target);

3316 target = ::_pbi::WireFormatLite::WriteInt32ToArray(

3317 66, this_._internal_max_swap_active_chain_size(), target);

3318 }

3319 }

3320

3321

3322 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

3323 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

3324 68, *this_._impl_.local_cheapest_insertion_parameters_, this_._impl_.local_cheapest_insertion_parameters_->GetCachedSize(), target,

3325 stream);

3326 }

3327

3328

3329 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

3330 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

3331 69, *this_._impl_.local_cheapest_cost_insertion_parameters_, this_._impl_.local_cheapest_cost_insertion_parameters_->GetCachedSize(), target,

3332 stream);

3333 }

3334

3335

3336 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

3337 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

3338 70, *this_._impl_.savings_parameters_, this_._impl_.savings_parameters_->GetCachedSize(), target,

3339 stream);

3340 }

3341

3342 cached_has_bits = this_._impl_._has_bits_[0];

3343

3344 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

3345 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

3346 71, *this_._impl_.global_cheapest_insertion_first_solution_parameters_, this_._impl_.global_cheapest_insertion_first_solution_parameters_->GetCachedSize(), target,

3347 stream);

3348 }

3349

3350 cached_has_bits = this_._impl_._has_bits_[1];

3351

3352 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

3353 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

3354 72, *this_._impl_.global_cheapest_insertion_ls_operator_parameters_, this_._impl_.global_cheapest_insertion_ls_operator_parameters_->GetCachedSize(), target,

3355 stream);

3356 }

3357

3358 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {

3359 target =

3360 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(

3361 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);

3362 }

3363

3364 return target;

3365}

3366

3367#if defined(PROTOBUF_CUSTOM_VTABLE)

3370#else

3373#endif

3374

3375 ::size_t total_size = 0;

3376

3377 ::uint32_t cached_has_bits = 0;

3378

3379 (void)cached_has_bits;

3380

3381 ::_pbi::Prefetch5LinesFrom7Lines(&this_);

3382 cached_has_bits = this_._impl_._has_bits_[0];

3383 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

3384

3385 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

3386 total_size += 1 +

3387 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_search_operators_);

3388 }

3389

3390 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

3391 total_size += 1 +

3392 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.time_limit_);

3393 }

3394

3395 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

3396 total_size += 1 +

3397 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.lns_time_limit_);

3398 }

3399

3400 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

3401 total_size += 2 +

3402 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.improvement_limit_parameters_);

3403 }

3404

3405 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

3406 total_size += 2 +

3407 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.global_cheapest_insertion_first_solution_parameters_);

3408 }

3409

3410 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

3411 if (this_._internal_first_solution_strategy() != 0) {

3412 total_size += 1 +

3413 ::_pbi::WireFormatLite::EnumSize(this_._internal_first_solution_strategy());

3414 }

3415 }

3416

3417 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

3418 if (this_._internal_local_search_metaheuristic() != 0) {

3419 total_size += 1 +

3420 ::_pbi::WireFormatLite::EnumSize(this_._internal_local_search_metaheuristic());

3421 }

3422 }

3423

3424 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

3425 if (::absl::bit_cast<::uint64_t>(this_._internal_guided_local_search_lambda_coefficient()) != 0) {

3426 total_size += 9;

3427 }

3428 }

3429 }

3430 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {

3431

3432 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

3433 if (::absl::bit_cast<::uint64_t>(this_._internal_optimization_step()) != 0) {

3434 total_size += 9;

3435 }

3436 }

3437

3438 if (CheckHasBit(cached_has_bits, 0x00000200U)) {

3439 if (this_._internal_solution_limit() != 0) {

3440 total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(

3441 this_._internal_solution_limit());

3442 }

3443 }

3444

3445 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

3446 if (this_._internal_use_unfiltered_first_solution_strategy() != 0) {

3447 total_size += 2;

3448 }

3449 }

3450

3451 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

3452 if (this_._internal_use_depth_first_search() != 0) {

3453 total_size += 2;

3454 }

3455 }

3456

3457 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

3458 if (this_._internal_use_full_propagation() != 0) {

3459 total_size += 2;

3460 }

3461 }

3462

3463 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

3464 if (this_._internal_log_search() != 0) {

3465 total_size += 2;

3466 }

3467 }

3468

3469 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

3470 if (this_._internal_number_of_solutions_to_collect() != 0) {

3471 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3472 this_._internal_number_of_solutions_to_collect());

3473 }

3474 }

3475

3476 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

3477 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_scaling_factor()) != 0) {

3478 total_size += 10;

3479 }

3480 }

3481 }

3482 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {

3483

3484 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

3485 if (this_._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {

3486 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3487 this_._internal_relocate_expensive_chain_num_arcs_to_consider());

3488 }

3489 }

3490

3491 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

3492 if (this_._internal_use_cp_sat() != 0) {

3493 total_size += 2 +

3494 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cp_sat());

3495 }

3496 }

3497

3498 if (CheckHasBit(cached_has_bits, 0x00040000U)) {

3499 if (::absl::bit_cast<::uint64_t>(this_._internal_log_cost_offset()) != 0) {

3500 total_size += 10;

3501 }

3502 }

3503

3504 if (CheckHasBit(cached_has_bits, 0x00080000U)) {

3505 if (this_._internal_use_cp() != 0) {

3506 total_size += 2 +

3507 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_cp());

3508 }

3509 }

3510

3511 if (CheckHasBit(cached_has_bits, 0x00100000U)) {

3512 if (this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {

3513 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3514 this_._internal_heuristic_expensive_chain_lns_num_arcs_to_consider());

3515 }

3516 }

3517

3518 if (CheckHasBit(cached_has_bits, 0x00200000U)) {

3519 if (this_._internal_mixed_integer_scheduling_solver() != 0) {

3520 total_size += 2 +

3521 ::_pbi::WireFormatLite::EnumSize(this_._internal_mixed_integer_scheduling_solver());

3522 }

3523 }

3524

3525 if (CheckHasBit(cached_has_bits, 0x00400000U)) {

3526 if (this_._internal_heuristic_close_nodes_lns_num_nodes() != 0) {

3527 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3528 this_._internal_heuristic_close_nodes_lns_num_nodes());

3529 }

3530 }

3531

3532 if (CheckHasBit(cached_has_bits, 0x00800000U)) {

3533 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {

3534 total_size += 10;

3535 }

3536 }

3537 }

3538 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {

3539

3540 if (CheckHasBit(cached_has_bits, 0x01000000U)) {

3541 if (this_._internal_christofides_use_minimum_matching() != 0) {

3542 total_size += 3;

3543 }

3544 }

3545

3546 if (CheckHasBit(cached_has_bits, 0x02000000U)) {

3547 if (this_._internal_use_multi_armed_bandit_concatenate_operators() != 0) {

3548 total_size += 3;

3549 }

3550 }

3551

3552 if (CheckHasBit(cached_has_bits, 0x04000000U)) {

3553 if (this_._internal_report_intermediate_cp_sat_solutions() != 0) {

3554 total_size += 3;

3555 }

3556 }

3557

3558 if (CheckHasBit(cached_has_bits, 0x08000000U)) {

3559 if (this_._internal_use_generalized_cp_sat() != 0) {

3560 total_size += 2 +

3561 ::_pbi::WireFormatLite::EnumSize(this_._internal_use_generalized_cp_sat());

3562 }

3563 }

3564

3565 if (CheckHasBitForRepeated(cached_has_bits, 0x10000000U)) {

3566 total_size += ::_pbi::WireFormatLite::EnumSizeWithPackedTagSize(

3567 this_._internal_local_search_metaheuristics(), 2, this_._impl_._local_search_metaheuristics_cached_byte_size_);

3568 }

3569

3570 if (CheckHasBit(cached_has_bits, 0x20000000U)) {

3571 if (!this_._internal_log_tag().empty()) {

3572 total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(

3573 this_._internal_log_tag());

3574 }

3575 }

3576

3577 if (CheckHasBit(cached_has_bits, 0x40000000U)) {

3578 total_size += 2 +

3579 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sat_parameters_);

3580 }

3581

3582 if (CheckHasBit(cached_has_bits, 0x80000000U)) {

3583 total_size += 2 +

3584 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.iterated_local_search_parameters_);

3585 }

3586 }

3587 cached_has_bits = this_._impl_._has_bits_[1];

3588 total_size += static_cast<bool>(0x00000200U & cached_has_bits) * 3;

3589 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

3590

3591 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

3592 total_size += 2 +

3593 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_cheapest_insertion_parameters_);

3594 }

3595

3596 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

3597 total_size += 2 +

3598 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_cheapest_cost_insertion_parameters_);

3599 }

3600

3601 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

3602 total_size += 2 +

3603 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.savings_parameters_);

3604 }

3605

3606 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

3607 total_size += 2 +

3608 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.global_cheapest_insertion_ls_operator_parameters_);

3609 }

3610

3611 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

3612 if (this_._internal_continuous_scheduling_solver() != 0) {

3613 total_size += 2 +

3614 ::_pbi::WireFormatLite::EnumSize(this_._internal_continuous_scheduling_solver());

3615 }

3616 }

3617

3618 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

3619 if (this_._internal_fallback_to_cp_sat_size_threshold() != 0) {

3620 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3621 this_._internal_fallback_to_cp_sat_size_threshold());

3622 }

3623 }

3624

3625 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

3626 if (::absl::bit_cast<::uint64_t>(this_._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {

3627 total_size += 10;

3628 }

3629 }

3630

3631 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

3632 if (::absl::bit_cast<::uint64_t>(this_._internal_ls_operator_neighbors_ratio()) != 0) {

3633 total_size += 10;

3634 }

3635 }

3636 }

3637 if (BatchCheckHasBit(cached_has_bits, 0x0000fd00U)) {

3638

3639 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

3640 if (this_._internal_ls_operator_min_neighbors() != 0) {

3641 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3642 this_._internal_ls_operator_min_neighbors());

3643 }

3644 }

3645

3646 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

3647 if (this_._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {

3648 total_size += 3;

3649 }

3650 }

3651

3652 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

3653 if (this_._internal_use_iterated_local_search() != 0) {

3654 total_size += 3;

3655 }

3656 }

3657

3658 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

3659 if (this_._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {

3660 total_size += 3;

3661 }

3662 }

3663

3664 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

3665 if (::absl::bit_cast<::uint64_t>(this_._internal_secondary_ls_time_limit_ratio()) != 0) {

3666 total_size += 10;

3667 }

3668 }

3669

3670 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

3671 if (this_._internal_first_solution_optimization_period() != 0) {

3672 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3673 this_._internal_first_solution_optimization_period());

3674 }

3675 }

3676

3677 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

3678 if (this_._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {

3679 total_size += 3;

3680 }

3681 }

3682 }

3683 if (BatchCheckHasBit(cached_has_bits, 0x00030000U)) {

3684

3685 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

3686 if (this_._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {

3687 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3688 this_._internal_num_max_local_optima_before_metaheuristic_switch());

3689 }

3690 }

3691

3692 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

3693 if (this_._internal_max_swap_active_chain_size() != 0) {

3694 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(

3695 this_._internal_max_swap_active_chain_size());

3696 }

3697 }

3698 }

3699 return this_.MaybeComputeUnknownFieldsSize(total_size,

3700 &this_._impl_._cached_size_);

3701}

3702

3703void RoutingSearchParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,

3704 const ::google::protobuf::MessageLite& from_msg) {

3705 auto* const _this =

3708 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

3709 from.CheckHasBitConsistency();

3710 }

3712

3713 ABSL_DCHECK_NE(&from, _this);

3714 ::uint32_t cached_has_bits = 0;

3715 (void)cached_has_bits;

3716

3717 cached_has_bits = from._impl_._has_bits_[0];

3718 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

3719 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

3720 ABSL_DCHECK(from._impl_.local_search_operators_ != nullptr);

3721 if (_this->_impl_.local_search_operators_ == nullptr) {

3722 _this->_impl_.local_search_operators_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_search_operators_);

3723 } else {

3724 _this->_impl_.local_search_operators_->MergeFrom(*from._impl_.local_search_operators_);

3725 }

3726 }

3727 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

3728 ABSL_DCHECK(from._impl_.time_limit_ != nullptr);

3729 if (_this->_impl_.time_limit_ == nullptr) {

3730 _this->_impl_.time_limit_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.time_limit_);

3731 } else {

3732 _this->_impl_.time_limit_->MergeFrom(*from._impl_.time_limit_);

3733 }

3734 }

3735 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

3736 ABSL_DCHECK(from._impl_.lns_time_limit_ != nullptr);

3737 if (_this->_impl_.lns_time_limit_ == nullptr) {

3738 _this->_impl_.lns_time_limit_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lns_time_limit_);

3739 } else {

3740 _this->_impl_.lns_time_limit_->MergeFrom(*from._impl_.lns_time_limit_);

3741 }

3742 }

3743 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

3744 ABSL_DCHECK(from._impl_.improvement_limit_parameters_ != nullptr);

3745 if (_this->_impl_.improvement_limit_parameters_ == nullptr) {

3746 _this->_impl_.improvement_limit_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.improvement_limit_parameters_);

3747 } else {

3748 _this->_impl_.improvement_limit_parameters_->MergeFrom(*from._impl_.improvement_limit_parameters_);

3749 }

3750 }

3751 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

3752 ABSL_DCHECK(from._impl_.global_cheapest_insertion_first_solution_parameters_ != nullptr);

3753 if (_this->_impl_.global_cheapest_insertion_first_solution_parameters_ == nullptr) {

3754 _this->_impl_.global_cheapest_insertion_first_solution_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.global_cheapest_insertion_first_solution_parameters_);

3755 } else {

3756 _this->_impl_.global_cheapest_insertion_first_solution_parameters_->MergeFrom(*from._impl_.global_cheapest_insertion_first_solution_parameters_);

3757 }

3758 }

3759 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

3760 if (from._internal_first_solution_strategy() != 0) {

3761 _this->_impl_.first_solution_strategy_ = from._impl_.first_solution_strategy_;

3762 }

3763 }

3764 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

3765 if (from._internal_local_search_metaheuristic() != 0) {

3766 _this->_impl_.local_search_metaheuristic_ = from._impl_.local_search_metaheuristic_;

3767 }

3768 }

3769 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

3770 if (::absl::bit_cast<::uint64_t>(from._internal_guided_local_search_lambda_coefficient()) != 0) {

3771 _this->_impl_.guided_local_search_lambda_coefficient_ = from._impl_.guided_local_search_lambda_coefficient_;

3772 }

3773 }

3774 }

3775 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {

3776 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

3777 if (::absl::bit_cast<::uint64_t>(from._internal_optimization_step()) != 0) {

3778 _this->_impl_.optimization_step_ = from._impl_.optimization_step_;

3779 }

3780 }

3781 if (CheckHasBit(cached_has_bits, 0x00000200U)) {

3782 if (from._internal_solution_limit() != 0) {

3783 _this->_impl_.solution_limit_ = from._impl_.solution_limit_;

3784 }

3785 }

3786 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

3787 if (from._internal_use_unfiltered_first_solution_strategy() != 0) {

3788 _this->_impl_.use_unfiltered_first_solution_strategy_ = from._impl_.use_unfiltered_first_solution_strategy_;

3789 }

3790 }

3791 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

3792 if (from._internal_use_depth_first_search() != 0) {

3793 _this->_impl_.use_depth_first_search_ = from._impl_.use_depth_first_search_;

3794 }

3795 }

3796 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

3797 if (from._internal_use_full_propagation() != 0) {

3798 _this->_impl_.use_full_propagation_ = from._impl_.use_full_propagation_;

3799 }

3800 }

3801 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

3802 if (from._internal_log_search() != 0) {

3803 _this->_impl_.log_search_ = from._impl_.log_search_;

3804 }

3805 }

3806 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

3807 if (from._internal_number_of_solutions_to_collect() != 0) {

3808 _this->_impl_.number_of_solutions_to_collect_ = from._impl_.number_of_solutions_to_collect_;

3809 }

3810 }

3811 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

3812 if (::absl::bit_cast<::uint64_t>(from._internal_log_cost_scaling_factor()) != 0) {

3813 _this->_impl_.log_cost_scaling_factor_ = from._impl_.log_cost_scaling_factor_;

3814 }

3815 }

3816 }

3817 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {

3818 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

3819 if (from._internal_relocate_expensive_chain_num_arcs_to_consider() != 0) {

3820 _this->_impl_.relocate_expensive_chain_num_arcs_to_consider_ = from._impl_.relocate_expensive_chain_num_arcs_to_consider_;

3821 }

3822 }

3823 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

3824 if (from._internal_use_cp_sat() != 0) {

3825 _this->_impl_.use_cp_sat_ = from._impl_.use_cp_sat_;

3826 }

3827 }

3828 if (CheckHasBit(cached_has_bits, 0x00040000U)) {

3829 if (::absl::bit_cast<::uint64_t>(from._internal_log_cost_offset()) != 0) {

3830 _this->_impl_.log_cost_offset_ = from._impl_.log_cost_offset_;

3831 }

3832 }

3833 if (CheckHasBit(cached_has_bits, 0x00080000U)) {

3834 if (from._internal_use_cp() != 0) {

3835 _this->_impl_.use_cp_ = from._impl_.use_cp_;

3836 }

3837 }

3838 if (CheckHasBit(cached_has_bits, 0x00100000U)) {

3839 if (from._internal_heuristic_expensive_chain_lns_num_arcs_to_consider() != 0) {

3840 _this->_impl_.heuristic_expensive_chain_lns_num_arcs_to_consider_ = from._impl_.heuristic_expensive_chain_lns_num_arcs_to_consider_;

3841 }

3842 }

3843 if (CheckHasBit(cached_has_bits, 0x00200000U)) {

3844 if (from._internal_mixed_integer_scheduling_solver() != 0) {

3845 _this->_impl_.mixed_integer_scheduling_solver_ = from._impl_.mixed_integer_scheduling_solver_;

3846 }

3847 }

3848 if (CheckHasBit(cached_has_bits, 0x00400000U)) {

3849 if (from._internal_heuristic_close_nodes_lns_num_nodes() != 0) {

3850 _this->_impl_.heuristic_close_nodes_lns_num_nodes_ = from._impl_.heuristic_close_nodes_lns_num_nodes_;

3851 }

3852 }

3853 if (CheckHasBit(cached_has_bits, 0x00800000U)) {

3854 if (::absl::bit_cast<::uint64_t>(from._internal_multi_armed_bandit_compound_operator_memory_coefficient()) != 0) {

3855 _this->_impl_.multi_armed_bandit_compound_operator_memory_coefficient_ = from._impl_.multi_armed_bandit_compound_operator_memory_coefficient_;

3856 }

3857 }

3858 }

3859 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {

3860 if (CheckHasBit(cached_has_bits, 0x01000000U)) {

3861 if (from._internal_christofides_use_minimum_matching() != 0) {

3862 _this->_impl_.christofides_use_minimum_matching_ = from._impl_.christofides_use_minimum_matching_;

3863 }

3864 }

3865 if (CheckHasBit(cached_has_bits, 0x02000000U)) {

3866 if (from._internal_use_multi_armed_bandit_concatenate_operators() != 0) {

3867 _this->_impl_.use_multi_armed_bandit_concatenate_operators_ = from._impl_.use_multi_armed_bandit_concatenate_operators_;

3868 }

3869 }

3870 if (CheckHasBit(cached_has_bits, 0x04000000U)) {

3871 if (from._internal_report_intermediate_cp_sat_solutions() != 0) {

3872 _this->_impl_.report_intermediate_cp_sat_solutions_ = from._impl_.report_intermediate_cp_sat_solutions_;

3873 }

3874 }

3875 if (CheckHasBit(cached_has_bits, 0x08000000U)) {

3876 if (from._internal_use_generalized_cp_sat() != 0) {

3877 _this->_impl_.use_generalized_cp_sat_ = from._impl_.use_generalized_cp_sat_;

3878 }

3879 }

3880 if (CheckHasBitForRepeated(cached_has_bits, 0x10000000U)) {

3881 _this->_internal_mutable_local_search_metaheuristics()->MergeFrom(from._internal_local_search_metaheuristics());

3882 }

3883 if (CheckHasBit(cached_has_bits, 0x20000000U)) {

3884 if (!from._internal_log_tag().empty()) {

3885 _this->_internal_set_log_tag(from._internal_log_tag());

3886 } else {

3887 if (_this->_impl_.log_tag_.IsDefault()) {

3888 _this->_internal_set_log_tag("");

3889 }

3890 }

3891 }

3892 if (CheckHasBit(cached_has_bits, 0x40000000U)) {

3893 ABSL_DCHECK(from._impl_.sat_parameters_ != nullptr);

3894 if (_this->_impl_.sat_parameters_ == nullptr) {

3895 _this->_impl_.sat_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sat_parameters_);

3896 } else {

3897 _this->_impl_.sat_parameters_->MergeFrom(*from._impl_.sat_parameters_);

3898 }

3899 }

3900 if (CheckHasBit(cached_has_bits, 0x80000000U)) {

3901 ABSL_DCHECK(from._impl_.iterated_local_search_parameters_ != nullptr);

3902 if (_this->_impl_.iterated_local_search_parameters_ == nullptr) {

3903 _this->_impl_.iterated_local_search_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.iterated_local_search_parameters_);

3904 } else {

3905 _this->_impl_.iterated_local_search_parameters_->MergeFrom(*from._impl_.iterated_local_search_parameters_);

3906 }

3907 }

3908 }

3909 cached_has_bits = from._impl_._has_bits_[1];

3910 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {

3911 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

3912 ABSL_DCHECK(from._impl_.local_cheapest_insertion_parameters_ != nullptr);

3913 if (_this->_impl_.local_cheapest_insertion_parameters_ == nullptr) {

3914 _this->_impl_.local_cheapest_insertion_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_cheapest_insertion_parameters_);

3915 } else {

3916 _this->_impl_.local_cheapest_insertion_parameters_->MergeFrom(*from._impl_.local_cheapest_insertion_parameters_);

3917 }

3918 }

3919 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

3920 ABSL_DCHECK(from._impl_.local_cheapest_cost_insertion_parameters_ != nullptr);

3921 if (_this->_impl_.local_cheapest_cost_insertion_parameters_ == nullptr) {

3922 _this->_impl_.local_cheapest_cost_insertion_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_cheapest_cost_insertion_parameters_);

3923 } else {

3924 _this->_impl_.local_cheapest_cost_insertion_parameters_->MergeFrom(*from._impl_.local_cheapest_cost_insertion_parameters_);

3925 }

3926 }

3927 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

3928 ABSL_DCHECK(from._impl_.savings_parameters_ != nullptr);

3929 if (_this->_impl_.savings_parameters_ == nullptr) {

3930 _this->_impl_.savings_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.savings_parameters_);

3931 } else {

3932 _this->_impl_.savings_parameters_->MergeFrom(*from._impl_.savings_parameters_);

3933 }

3934 }

3935 if (CheckHasBit(cached_has_bits, 0x00000008U)) {

3936 ABSL_DCHECK(from._impl_.global_cheapest_insertion_ls_operator_parameters_ != nullptr);

3937 if (_this->_impl_.global_cheapest_insertion_ls_operator_parameters_ == nullptr) {

3938 _this->_impl_.global_cheapest_insertion_ls_operator_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.global_cheapest_insertion_ls_operator_parameters_);

3939 } else {

3940 _this->_impl_.global_cheapest_insertion_ls_operator_parameters_->MergeFrom(*from._impl_.global_cheapest_insertion_ls_operator_parameters_);

3941 }

3942 }

3943 if (CheckHasBit(cached_has_bits, 0x00000010U)) {

3944 if (from._internal_continuous_scheduling_solver() != 0) {

3945 _this->_impl_.continuous_scheduling_solver_ = from._impl_.continuous_scheduling_solver_;

3946 }

3947 }

3948 if (CheckHasBit(cached_has_bits, 0x00000020U)) {

3949 if (from._internal_fallback_to_cp_sat_size_threshold() != 0) {

3950 _this->_impl_.fallback_to_cp_sat_size_threshold_ = from._impl_.fallback_to_cp_sat_size_threshold_;

3951 }

3952 }

3953 if (CheckHasBit(cached_has_bits, 0x00000040U)) {

3954 if (::absl::bit_cast<::uint64_t>(from._internal_multi_armed_bandit_compound_operator_exploration_coefficient()) != 0) {

3955 _this->_impl_.multi_armed_bandit_compound_operator_exploration_coefficient_ = from._impl_.multi_armed_bandit_compound_operator_exploration_coefficient_;

3956 }

3957 }

3958 if (CheckHasBit(cached_has_bits, 0x00000080U)) {

3959 if (::absl::bit_cast<::uint64_t>(from._internal_ls_operator_neighbors_ratio()) != 0) {

3960 _this->_impl_.ls_operator_neighbors_ratio_ = from._impl_.ls_operator_neighbors_ratio_;

3961 }

3962 }

3963 }

3964 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {

3965 if (CheckHasBit(cached_has_bits, 0x00000100U)) {

3966 if (from._internal_ls_operator_min_neighbors() != 0) {

3967 _this->_impl_.ls_operator_min_neighbors_ = from._impl_.ls_operator_min_neighbors_;

3968 }

3969 }

3970 if (CheckHasBit(cached_has_bits, 0x00000200U)) {

3971 _this->_impl_.disable_scheduling_beware_this_may_degrade_performance_ = from._impl_.disable_scheduling_beware_this_may_degrade_performance_;

3972 }

3973 if (CheckHasBit(cached_has_bits, 0x00000400U)) {

3974 if (from._internal_guided_local_search_reset_penalties_on_new_best_solution() != 0) {

3975 _this->_impl_.guided_local_search_reset_penalties_on_new_best_solution_ = from._impl_.guided_local_search_reset_penalties_on_new_best_solution_;

3976 }

3977 }

3978 if (CheckHasBit(cached_has_bits, 0x00000800U)) {

3979 if (from._internal_use_iterated_local_search() != 0) {

3980 _this->_impl_.use_iterated_local_search_ = from._impl_.use_iterated_local_search_;

3981 }

3982 }

3983 if (CheckHasBit(cached_has_bits, 0x00001000U)) {

3984 if (from._internal_guided_local_search_penalize_with_vehicle_classes() != 0) {

3985 _this->_impl_.guided_local_search_penalize_with_vehicle_classes_ = from._impl_.guided_local_search_penalize_with_vehicle_classes_;

3986 }

3987 }

3988 if (CheckHasBit(cached_has_bits, 0x00002000U)) {

3989 if (::absl::bit_cast<::uint64_t>(from._internal_secondary_ls_time_limit_ratio()) != 0) {

3990 _this->_impl_.secondary_ls_time_limit_ratio_ = from._impl_.secondary_ls_time_limit_ratio_;

3991 }

3992 }

3993 if (CheckHasBit(cached_has_bits, 0x00004000U)) {

3994 if (from._internal_first_solution_optimization_period() != 0) {

3995 _this->_impl_.first_solution_optimization_period_ = from._impl_.first_solution_optimization_period_;

3996 }

3997 }

3998 if (CheckHasBit(cached_has_bits, 0x00008000U)) {

3999 if (from._internal_use_guided_local_search_penalties_in_local_search_operators() != 0) {

4000 _this->_impl_.use_guided_local_search_penalties_in_local_search_operators_ = from._impl_.use_guided_local_search_penalties_in_local_search_operators_;

4001 }

4002 }

4003 }

4004 if (BatchCheckHasBit(cached_has_bits, 0x00030000U)) {

4005 if (CheckHasBit(cached_has_bits, 0x00010000U)) {

4006 if (from._internal_num_max_local_optima_before_metaheuristic_switch() != 0) {

4007 _this->_impl_.num_max_local_optima_before_metaheuristic_switch_ = from._impl_.num_max_local_optima_before_metaheuristic_switch_;

4008 }

4009 }

4010 if (CheckHasBit(cached_has_bits, 0x00020000U)) {

4011 if (from._internal_max_swap_active_chain_size() != 0) {

4012 _this->_impl_.max_swap_active_chain_size_ = from._impl_.max_swap_active_chain_size_;

4013 }

4014 }

4015 }

4016 _this->_impl_._has_bits_.Or(from._impl_._has_bits_);

4017 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(

4018 from._internal_metadata_);

4019}

4020

4022

4023 if (&from == this) return;

4026}

4027

4028

4029void RoutingSearchParameters::InternalSwap(RoutingSearchParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {

4030 using ::std::swap;

4031 auto* arena = GetArena();

4032 ABSL_DCHECK_EQ(arena, other->GetArena());

4033 _internal_metadata_.InternalSwap(&other->_internal_metadata_);

4034 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);

4035 swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);

4036 ::google::protobuf::internal::memswap<

4040 reinterpret_cast<char*>(&_impl_.local_search_operators_),

4041 reinterpret_cast<char*>(&other->_impl_.local_search_operators_));

4042 _impl_.local_search_metaheuristics_.InternalSwap(&other->_impl_.local_search_metaheuristics_);

4043 ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.log_tag_, &other->_impl_.log_tag_, arena);

4044 ::google::protobuf::internal::memswap<

4048 reinterpret_cast<char*>(&_impl_.sat_parameters_),

4049 reinterpret_cast<char*>(&other->_impl_.sat_parameters_));

4050}

4051

4053 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());

4054}

4058 public:

4059 using HasBits =

4060 decltype(::std::declval<RoutingModelParameters>()._impl_._has_bits_);

4064

4066 ::google::protobuf::internal::TSanWrite(&_impl_);

4067 if (_impl_.solver_parameters_ != nullptr) _impl_.solver_parameters_->Clear();

4068 ClearHasBit(_impl_._has_bits_[0],

4069 0x00000001U);

4070}

4072#if defined(PROTOBUF_CUSTOM_VTABLE)

4074#else

4075 : ::google::protobuf::Message(arena) {

4076#endif

4077 SharedCtor(arena);

4078

4079}

4080PROTOBUF_NDEBUG_INLINE RoutingModelParameters::Impl_::Impl_(

4081 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,

4082 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,

4083 [[maybe_unused]] const ::operations_research::RoutingModelParameters& from_msg)

4084 : _has_bits_{from._has_bits_},

4085 _cached_size_{0} {}

4086

4088 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,

4090#if defined(PROTOBUF_CUSTOM_VTABLE)

4092#else

4093 : ::google::protobuf::Message(arena) {

4094#endif

4096 (void)_this;

4097 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(

4098 from._internal_metadata_);

4099 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

4100 ::uint32_t cached_has_bits = _impl_._has_bits_[0];

4101 _impl_.solver_parameters_ = (CheckHasBit(cached_has_bits, 0x00000001U))

4102 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.solver_parameters_)

4103 : nullptr;

4104 ::memcpy(reinterpret_cast<char*>(&_impl_) +

4105 offsetof(Impl_, reduce_vehicle_cost_model_),

4106 reinterpret_cast<const char*>(&from._impl_) +

4107 offsetof(Impl_, reduce_vehicle_cost_model_),

4108 offsetof(Impl_, max_callback_cache_size_) -

4109 offsetof(Impl_, reduce_vehicle_cost_model_) +

4110 sizeof(Impl_::max_callback_cache_size_));

4111

4112

4113}

4114PROTOBUF_NDEBUG_INLINE RoutingModelParameters::Impl_::Impl_(

4115 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,

4116 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)

4117 : _cached_size_{0} {}

4118

4119inline void RoutingModelParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {

4120 new (&_impl_) Impl_(internal_visibility(), arena);

4121 ::memset(reinterpret_cast<char*>(&_impl_) +

4122 offsetof(Impl_, solver_parameters_),

4123 0,

4124 offsetof(Impl_, max_callback_cache_size_) -

4125 offsetof(Impl_, solver_parameters_) +

4126 sizeof(Impl_::max_callback_cache_size_));

4127}

4129

4130 SharedDtor(*this);

4131}

4132inline void RoutingModelParameters::SharedDtor(MessageLite& self) {

4134 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

4135 this_.CheckHasBitConsistency();

4136 }

4137 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();

4138 ABSL_DCHECK(this_.GetArena() == nullptr);

4139 delete this_._impl_.solver_parameters_;

4140 this_._impl_.~Impl_();

4141}

4142

4143inline void* PROTOBUF_NONNULL RoutingModelParameters::PlacementNew_(

4144 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,

4145 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {

4147}

4148constexpr auto RoutingModelParameters::InternalNewImpl_() {

4149 return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RoutingModelParameters),

4151}

4153 return ::google::protobuf::internal::ClassDataFull{

4154 ::google::protobuf::internal::ClassData{

4156 &_table_.header,

4157 nullptr,

4158 nullptr,

4159 &RoutingModelParameters::MergeImpl,

4160 ::google::protobuf::Message::GetNewImpl<RoutingModelParameters>(),

4161#if defined(PROTOBUF_CUSTOM_VTABLE)

4162 &RoutingModelParameters::SharedDtor,

4165#endif

4167 false,

4168 },

4169 &RoutingModelParameters::kDescriptorMethods,

4171 nullptr,

4172 };

4173}

4174

4175PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const

4178

4179PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL

4180RoutingModelParameters::GetClassData() const {

4184}

4185PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1

4186const ::_pbi::TcParseTable<2, 3, 1, 0, 2>

4187RoutingModelParameters::_table_ = {

4188 {

4189 PROTOBUF_FIELD_OFFSET(RoutingModelParameters, _impl_._has_bits_),

4190 0,

4191 3, 24,

4192 offsetof(decltype(_table_), field_lookup_table),

4193 4294967288,

4194 offsetof(decltype(_table_), field_entries),

4195 3,

4196 1,

4197 offsetof(decltype(_table_), aux_entries),

4199 nullptr,

4200 ::_pbi::TcParser::GenericFallback,

4201 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE

4202 ::_pbi::TcParser::GetTable<::operations_research::RoutingModelParameters>(),

4203 #endif

4204 }, {{

4205 {::_pbi::TcParser::MiniParse, {}},

4206

4207 {::_pbi::TcParser::FastMtS1,

4208 {10, 0, 0,

4210

4211 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(RoutingModelParameters, _impl_.reduce_vehicle_cost_model_), 1>(),

4212 {16, 1, 0,

4214

4215 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RoutingModelParameters, _impl_.max_callback_cache_size_), 2>(),

4216 {24, 2, 0,

4218 }}, {{

4219 65535, 65535

4220 }}, {{

4221

4222 {PROTOBUF_FIELD_OFFSET(RoutingModelParameters, _impl_.solver_parameters_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},

4223

4224 {PROTOBUF_FIELD_OFFSET(RoutingModelParameters, _impl_.reduce_vehicle_cost_model_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},

4225

4226 {PROTOBUF_FIELD_OFFSET(RoutingModelParameters, _impl_.max_callback_cache_size_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},

4227 }},

4228 {{

4229 {::_pbi::TcParser::GetTable<::operations_research::ConstraintSolverParameters>()},

4230 }},

4231 {{

4232 }},

4233};

4235

4236 ::google::protobuf::internal::TSanWrite(&_impl_);

4237 ::uint32_t cached_has_bits = 0;

4238

4239 (void) cached_has_bits;

4240

4241 cached_has_bits = _impl_._has_bits_[0];

4242 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

4243 ABSL_DCHECK(_impl_.solver_parameters_ != nullptr);

4244 _impl_.solver_parameters_->Clear();

4245 }

4246 if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {

4247 ::memset(&_impl_.reduce_vehicle_cost_model_, 0, static_cast<::size_t>(

4248 reinterpret_cast<char*>(&_impl_.max_callback_cache_size_) -

4249 reinterpret_cast<char*>(&_impl_.reduce_vehicle_cost_model_)) + sizeof(_impl_.max_callback_cache_size_));

4250 }

4251 _impl_._has_bits_.Clear();

4252 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();

4253}

4254

4255#if defined(PROTOBUF_CUSTOM_VTABLE)

4257 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,

4258 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {

4260#else

4262 ::uint8_t* PROTOBUF_NONNULL target,

4263 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {

4265#endif

4266 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

4267 this_.CheckHasBitConsistency();

4268 }

4269

4270 ::uint32_t cached_has_bits = 0;

4271 (void)cached_has_bits;

4272

4273 cached_has_bits = this_._impl_._has_bits_[0];

4274

4275 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

4276 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(

4277 1, *this_._impl_.solver_parameters_, this_._impl_.solver_parameters_->GetCachedSize(), target,

4278 stream);

4279 }

4280

4281

4282 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

4283 if (this_._internal_reduce_vehicle_cost_model() != 0) {

4284 target = stream->EnsureSpace(target);

4285 target = ::_pbi::WireFormatLite::WriteBoolToArray(

4286 2, this_._internal_reduce_vehicle_cost_model(), target);

4287 }

4288 }

4289

4290

4291 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

4292 if (this_._internal_max_callback_cache_size() != 0) {

4293 target =

4294 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(

4295 stream, this_._internal_max_callback_cache_size(), target);

4296 }

4297 }

4298

4299 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {

4300 target =

4301 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(

4302 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);

4303 }

4304

4305 return target;

4306}

4307

4308#if defined(PROTOBUF_CUSTOM_VTABLE)

4311#else

4314#endif

4315

4316 ::size_t total_size = 0;

4317

4318 ::uint32_t cached_has_bits = 0;

4319

4320 (void)cached_has_bits;

4321

4322 ::_pbi::Prefetch5LinesFrom7Lines(&this_);

4323 cached_has_bits = this_._impl_._has_bits_[0];

4324 if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {

4325

4326 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

4327 total_size += 1 +

4328 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.solver_parameters_);

4329 }

4330

4331 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

4332 if (this_._internal_reduce_vehicle_cost_model() != 0) {

4333 total_size += 2;

4334 }

4335 }

4336

4337 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

4338 if (this_._internal_max_callback_cache_size() != 0) {

4339 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(

4340 this_._internal_max_callback_cache_size());

4341 }

4342 }

4343 }

4344 return this_.MaybeComputeUnknownFieldsSize(total_size,

4345 &this_._impl_._cached_size_);

4346}

4347

4348void RoutingModelParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,

4349 const ::google::protobuf::MessageLite& from_msg) {

4350 auto* const _this =

4353 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {

4354 from.CheckHasBitConsistency();

4355 }

4357

4358 ABSL_DCHECK_NE(&from, _this);

4359 ::uint32_t cached_has_bits = 0;

4360 (void)cached_has_bits;

4361

4362 cached_has_bits = from._impl_._has_bits_[0];

4363 if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {

4364 if (CheckHasBit(cached_has_bits, 0x00000001U)) {

4365 ABSL_DCHECK(from._impl_.solver_parameters_ != nullptr);

4366 if (_this->_impl_.solver_parameters_ == nullptr) {

4367 _this->_impl_.solver_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.solver_parameters_);

4368 } else {

4369 _this->_impl_.solver_parameters_->MergeFrom(*from._impl_.solver_parameters_);

4370 }

4371 }

4372 if (CheckHasBit(cached_has_bits, 0x00000002U)) {

4373 if (from._internal_reduce_vehicle_cost_model() != 0) {

4374 _this->_impl_.reduce_vehicle_cost_model_ = from._impl_.reduce_vehicle_cost_model_;

4375 }

4376 }

4377 if (CheckHasBit(cached_has_bits, 0x00000004U)) {

4378 if (from._internal_max_callback_cache_size() != 0) {

4379 _this->_impl_.max_callback_cache_size_ = from._impl_.max_callback_cache_size_;

4380 }

4381 }

4382 }

4383 _this->_impl_._has_bits_[0] |= cached_has_bits;

4384 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(

4385 from._internal_metadata_);

4386}

4387

4389

4390 if (&from == this) return;

4393}

4394

4395

4396void RoutingModelParameters::InternalSwap(RoutingModelParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {

4397 using ::std::swap;

4398 _internal_metadata_.InternalSwap(&other->_internal_metadata_);

4399 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);

4400 ::google::protobuf::internal::memswap<

4404 reinterpret_cast<char*>(&_impl_.solver_parameters_),

4405 reinterpret_cast<char*>(&other->_impl_.solver_parameters_));

4406}

4407

4409 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());

4410}

4411

4412}

4414namespace protobuf {

4415}

4416}

4417

4418PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type

4421 ::std::false_type{});

4422#include "google/protobuf/port_undef.inc"

static PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 ::std::false_type _static_init2_

static const ::_pb::Message *PROTOBUF_NONNULL const file_default_instances[]

int GetCachedSize() const

int GetCachedSize() const

int GetCachedSize() const

static constexpr ::int32_t kHasBitsOffset

Definition routing_parameters.pb.cc:4065

friend class ::google::protobuf::MessageLite

void clear_solver_parameters()

Definition routing_parameters.pb.cc:4069

void CopyFrom(const RoutingModelParameters &from)

Definition routing_parameters.pb.cc:4392

::size_t ByteSizeLong() const final

Definition routing_parameters.pb.cc:4316

static constexpr auto InternalGenerateClassData_()

Definition routing_parameters.pb.cc:4156

~RoutingModelParameters() PROTOBUF_FINAL

Definition routing_parameters.pb.cc:4132

friend void swap(RoutingModelParameters &a, RoutingModelParameters &b)

void MergeFrom(const RoutingModelParameters &from)

::google::protobuf::Metadata GetMetadata() const

Definition routing_parameters.pb.cc:4412

::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final

Definition routing_parameters.pb.cc:4265

ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL

Definition routing_parameters.pb.cc:4238

friend class ::google::protobuf::Arena

static constexpr ::int32_t kHasBitsOffset

Definition routing_parameters.pb.cc:2290

static constexpr ::int32_t kHasBitsOffset

Definition routing_parameters.pb.cc:1995

decltype(::std::declval< RoutingSearchParameters_ImprovementSearchLimitParameters >()._impl_._has_bits_) HasBits

Definition routing_parameters.pb.cc:1993

void CopyFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)

Definition routing_parameters.pb.cc:2260

friend class ::google::protobuf::MessageLite

~RoutingSearchParameters_ImprovementSearchLimitParameters() PROTOBUF_FINAL

Definition routing_parameters.pb.cc:2033

ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL

Definition routing_parameters.pb.cc:2131

const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND

::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final

Definition routing_parameters.pb.cc:2154

void MergeFrom(const RoutingSearchParameters_ImprovementSearchLimitParameters &from)

::size_t ByteSizeLong() const final

Definition routing_parameters.pb.cc:2198

static constexpr auto InternalGenerateClassData_()

Definition routing_parameters.pb.cc:2056

::google::protobuf::Metadata GetMetadata() const

Definition routing_parameters.pb.cc:2280

int GetCachedSize() const

friend void swap(RoutingSearchParameters_ImprovementSearchLimitParameters &a, RoutingSearchParameters_ImprovementSearchLimitParameters &b)

RoutingSearchParameters_ImprovementSearchLimitParameters()

static constexpr ::int32_t kHasBitsOffset

Definition routing_parameters.pb.cc:666

decltype(::std::declval< RoutingSearchParameters_LocalSearchNeighborhoodOperators >()._impl_._has_bits_) HasBits

Definition routing_parameters.pb.cc:664

::google::protobuf::Metadata GetMetadata() const

Definition routing_parameters.pb.cc:1985

friend class ::google::protobuf::MessageLite

const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND

ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL

Definition routing_parameters.pb.cc:995

::size_t ByteSizeLong() const final

Definition routing_parameters.pb.cc:1427

void MergeFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)

~RoutingSearchParameters_LocalSearchNeighborhoodOperators() PROTOBUF_FINAL

Definition routing_parameters.pb.cc:704

int GetCachedSize() const

void CopyFrom(const RoutingSearchParameters_LocalSearchNeighborhoodOperators &from)

Definition routing_parameters.pb.cc:1964

friend void swap(RoutingSearchParameters_LocalSearchNeighborhoodOperators &a, RoutingSearchParameters_LocalSearchNeighborhoodOperators &b)

static constexpr auto InternalGenerateClassData_()

Definition routing_parameters.pb.cc:727

RoutingSearchParameters_LocalSearchNeighborhoodOperators()

::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final

Definition routing_parameters.pb.cc:1039

void CopyFrom(const RoutingSearchParameters &from)

Definition routing_parameters.pb.cc:4024

ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL

Definition routing_parameters.pb.cc:2798

friend class ::google::protobuf::MessageLite

void clear_savings_parameters()

Definition routing_parameters.pb.cc:2294

RoutingSearchParameters()

const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND

void clear_local_cheapest_cost_insertion_parameters()

Definition routing_parameters.pb.cc:2318

void clear_global_cheapest_insertion_first_solution_parameters()

Definition routing_parameters.pb.cc:2300

~RoutingSearchParameters() PROTOBUF_FINAL

Definition routing_parameters.pb.cc:2455

void clear_global_cheapest_insertion_ls_operator_parameters()

Definition routing_parameters.pb.cc:2306

::google::protobuf::Metadata GetMetadata() const

Definition routing_parameters.pb.cc:4055

void clear_sat_parameters()

Definition routing_parameters.pb.cc:2324

void clear_iterated_local_search_parameters()

Definition routing_parameters.pb.cc:2342

void MergeFrom(const RoutingSearchParameters &from)

::size_t ByteSizeLong() const final

Definition routing_parameters.pb.cc:3374

void clear_time_limit()

Definition routing_parameters.pb.cc:2330

static constexpr auto InternalGenerateClassData_()

Definition routing_parameters.pb.cc:2502

::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final

Definition routing_parameters.pb.cc:2906

void clear_local_cheapest_insertion_parameters()

Definition routing_parameters.pb.cc:2312

void clear_lns_time_limit()

Definition routing_parameters.pb.cc:2336

friend void swap(RoutingSearchParameters &a, RoutingSearchParameters &b)

friend class ::google::protobuf::Arena

int GetCachedSize() const

int GetCachedSize() const

static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull RoutingModelParameters_class_data_

Definition routing_parameters.pb.cc:4180

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal _RoutingSearchParameters_LocalSearchNeighborhoodOperators_default_instance_

Definition routing_parameters.pb.cc:91

PROTOBUF_CONSTINIT const uint32_t RoutingSearchParameters_SchedulingSolver_internal_data_[]

Definition routing_parameters.pb.cc:657

RoutingSearchParameters_SchedulingSolver

LocalSearchMetaheuristic_Value

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RoutingModelParametersDefaultTypeInternal _RoutingModelParameters_default_instance_

Definition routing_parameters.pb.cc:144

const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL RoutingSearchParameters_SchedulingSolver_descriptor()

Definition routing_parameters.pb.cc:653

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull RoutingSearchParameters_ImprovementSearchLimitParameters_class_data_

Definition routing_parameters.pb.cc:2080

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull RoutingSearchParameters_LocalSearchNeighborhoodOperators_class_data_

Definition routing_parameters.pb.cc:751

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RoutingSearchParametersDefaultTypeInternal _RoutingSearchParameters_default_instance_

Definition routing_parameters.pb.cc:221

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull RoutingSearchParameters_class_data_

Definition routing_parameters.pb.cc:2526

FirstSolutionStrategy_Value

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal _RoutingSearchParameters_ImprovementSearchLimitParameters_default_instance_

Definition routing_parameters.pb.cc:117

PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2futil_2foptional_5fboolean_2eproto

PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fenums_2eproto

PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fheuristic_5fparameters_2eproto

PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fils_2eproto

PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto

Definition routing_parameters.pb.cc:636

static constexprconst ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE file_level_service_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto

Definition routing_parameters.pb.cc:226

static const ::_pbi::DescriptorTable *PROTOBUF_NONNULL const descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_deps[7]

Definition routing_parameters.pb.cc:626

::absl::once_flag descriptor_table_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto_once

Definition routing_parameters.pb.cc:635

const ::uint32_t TableStruct_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold)

static const ::_pb::EnumDescriptor *PROTOBUF_NONNULL file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2frouting_5fparameters_2eproto[1]

Definition routing_parameters.pb.cc:224

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()

Definition routing_parameters.pb.cc:136

RoutingModelParameters _instance

Definition routing_parameters.pb.cc:139

~RoutingModelParametersDefaultTypeInternal()

Definition routing_parameters.pb.cc:137

RoutingSearchParameters _instance

Definition routing_parameters.pb.cc:216

~RoutingSearchParametersDefaultTypeInternal()

Definition routing_parameters.pb.cc:214

PROTOBUF_CONSTEXPR RoutingSearchParametersDefaultTypeInternal()

Definition routing_parameters.pb.cc:213

RoutingSearchParameters_ImprovementSearchLimitParameters _instance

Definition routing_parameters.pb.cc:112

PROTOBUF_CONSTEXPR RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal()

Definition routing_parameters.pb.cc:109

~RoutingSearchParameters_ImprovementSearchLimitParametersDefaultTypeInternal()

Definition routing_parameters.pb.cc:110

PROTOBUF_CONSTEXPR RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal()

Definition routing_parameters.pb.cc:83

RoutingSearchParameters_LocalSearchNeighborhoodOperators _instance

Definition routing_parameters.pb.cc:86

~RoutingSearchParameters_LocalSearchNeighborhoodOperatorsDefaultTypeInternal()

Definition routing_parameters.pb.cc:84