10#include "google/protobuf/io/coded_stream.h"
11#include "google/protobuf/generated_message_tctable_impl.h"
12#include "google/protobuf/extension_set.h"
13#include "google/protobuf/generated_message_util.h"
14#include "google/protobuf/wire_format_lite.h"
15#include "google/protobuf/descriptor.h"
16#include "google/protobuf/generated_message_reflection.h"
17#include "google/protobuf/reflection_ops.h"
18#include "google/protobuf/wire_format.h"
22#include "google/protobuf/port_def.inc"
23PROTOBUF_PRAGMA_INIT_SEG
26namespace _fl = ::google::protobuf::internal::field_layout;
30inline constexpr TerminationCriteria_SimpleOptimalityCriteria::Impl_::Impl_(
31 ::_pbi::ConstantInitialized) noexcept
33 eps_optimal_absolute_{1e-06},
34 eps_optimal_relative_{1e-06} {}
38#if defined(PROTOBUF_CUSTOM_VTABLE)
41 : ::google::protobuf::Message(),
43 _impl_(::_pbi::ConstantInitialized()) {
53PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
56inline constexpr TerminationCriteria_DetailedOptimalityCriteria::Impl_::Impl_(
57 ::_pbi::ConstantInitialized) noexcept
59 eps_optimal_primal_residual_absolute_{1e-06},
60 eps_optimal_primal_residual_relative_{1e-06},
61 eps_optimal_dual_residual_absolute_{1e-06},
62 eps_optimal_dual_residual_relative_{1e-06},
63 eps_optimal_objective_gap_absolute_{1e-06},
64 eps_optimal_objective_gap_relative_{1e-06} {}
68#if defined(PROTOBUF_CUSTOM_VTABLE)
71 : ::google::protobuf::Message(),
73 _impl_(::_pbi::ConstantInitialized()) {
83PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
86inline constexpr MalitskyPockParams::Impl_::Impl_(
87 ::_pbi::ConstantInitialized) noexcept
89 step_size_downscaling_factor_{0.7},
90 linesearch_contraction_factor_{0.99},
91 step_size_interpolation_{1} {}
95#if defined(PROTOBUF_CUSTOM_VTABLE)
98 : ::google::protobuf::Message(),
100 _impl_(::_pbi::ConstantInitialized()) {
110PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
113inline constexpr AdaptiveLinesearchParams::Impl_::Impl_(
114 ::_pbi::ConstantInitialized) noexcept
116 step_size_reduction_exponent_{0.3},
117 step_size_growth_exponent_{0.6} {}
121#if defined(PROTOBUF_CUSTOM_VTABLE)
124 : ::google::protobuf::Message(),
126 _impl_(::_pbi::ConstantInitialized()) {
136PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
139inline constexpr TerminationCriteria::Impl_::Impl_(
140 ::_pbi::ConstantInitialized) noexcept
142 eps_optimal_absolute_{1e-06},
143 eps_optimal_relative_{1e-06},
144 eps_primal_infeasible_{1e-08},
146 iteration_limit_{2147483647},
147 eps_dual_infeasible_{1e-08},
148 time_sec_limit_{std::numeric_limits<double>::infinity()},
149 kkt_matrix_pass_limit_{std::numeric_limits<double>::infinity()},
150 optimality_criteria_{},
155#if defined(PROTOBUF_CUSTOM_VTABLE)
158 : ::google::protobuf::Message(),
160 _impl_(::_pbi::ConstantInitialized()) {
170PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
173inline constexpr PrimalDualHybridGradientParams_PresolveOptions::Impl_::Impl_(
174 ::_pbi::ConstantInitialized) noexcept
176 glop_parameters_{
nullptr},
181#if defined(PROTOBUF_CUSTOM_VTABLE)
184 : ::google::protobuf::Message(),
186 _impl_(::_pbi::ConstantInitialized()) {
196PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
199inline constexpr PrimalDualHybridGradientParams::Impl_::Impl_(
200 ::_pbi::ConstantInitialized) noexcept
202 random_projection_seeds_{},
203 _random_projection_seeds_cached_byte_size_{0},
204 termination_criteria_{
nullptr},
205 presolve_options_{
nullptr},
206 adaptive_linesearch_parameters_{
nullptr},
207 malitsky_pock_parameters_{
nullptr},
208 initial_primal_weight_{0},
209 record_iteration_stats_{
false},
210 use_diagonal_qp_trust_region_solver_{
false},
211 use_feasibility_polishing_{
false},
213 log_interval_seconds_{0},
215 apply_feasibility_polishing_after_limits_reached_{
false},
216 apply_feasibility_polishing_if_solver_is_interrupted_{
false},
218 major_iteration_frequency_{64},
219 termination_check_frequency_{64},
221 primal_weight_update_smoothing_{0.5},
222 l_inf_ruiz_iterations_{5},
224 sufficient_reduction_for_restart_{0.1},
225 necessary_reduction_for_restart_{0.9},
226 infinite_constraint_bound_threshold_{std::numeric_limits<double>::infinity()},
227 l2_norm_rescaling_{
true},
228 handle_some_primal_gradients_on_finite_bounds_as_residuals_{
true},
230 diagonal_qp_trust_region_solver_tolerance_{1e-08},
231 initial_step_size_scaling_{1} {}
235#if defined(PROTOBUF_CUSTOM_VTABLE)
238 : ::google::protobuf::Message(),
240 _impl_(::_pbi::ConstantInitialized()) {
250PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
254static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
256static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
394static const ::_pbi::MigrationSchema
415 "\n\032ortools/pdlp/solvers.proto\022\030operations"
416 "_research.pdlp\032\035ortools/glop/parameters."
417 "proto\"\240\010\n\023TerminationCriteria\022U\n\017optimal"
418 "ity_norm\030\001 \001(\0162(.operations_research.pdl"
419 "p.OptimalityNorm:\022OPTIMALITY_NORM_L2\022l\n\032"
420 "simple_optimality_criteria\030\t \001(\0132F.opera"
421 "tions_research.pdlp.TerminationCriteria."
422 "SimpleOptimalityCriteriaH\000\022p\n\034detailed_o"
423 "ptimality_criteria\030\n \001(\0132H.operations_re"
424 "search.pdlp.TerminationCriteria.Detailed"
425 "OptimalityCriteriaH\000\022\'\n\024eps_optimal_abso"
426 "lute\030\002 \001(\001:\0051e-06B\002\030\001\022\'\n\024eps_optimal_rel"
427 "ative\030\003 \001(\001:\0051e-06B\002\030\001\022$\n\025eps_primal_inf"
428 "easible\030\004 \001(\001:\0051e-08\022\"\n\023eps_dual_infeasi"
429 "ble\030\005 \001(\001:\0051e-08\022\033\n\016time_sec_limit\030\006 \001(\001"
430 ":\003inf\022#\n\017iteration_limit\030\007 \001(\005:\n21474836"
431 "47\022\"\n\025kkt_matrix_pass_limit\030\010 \001(\001:\003inf\032d"
432 "\n\030SimpleOptimalityCriteria\022#\n\024eps_optima"
433 "l_absolute\030\001 \001(\001:\0051e-06\022#\n\024eps_optimal_r"
434 "elative\030\002 \001(\001:\0051e-06\032\322\002\n\032DetailedOptimal"
435 "ityCriteria\0223\n$eps_optimal_primal_residu"
436 "al_absolute\030\001 \001(\001:\0051e-06\0223\n$eps_optimal_"
437 "primal_residual_relative\030\002 \001(\001:\0051e-06\0221\n"
438 "\"eps_optimal_dual_residual_absolute\030\003 \001("
439 "\001:\0051e-06\0221\n\"eps_optimal_dual_residual_re"
440 "lative\030\004 \001(\001:\0051e-06\0221\n\"eps_optimal_objec"
441 "tive_gap_absolute\030\005 \001(\001:\0051e-06\0221\n\"eps_op"
442 "timal_objective_gap_relative\030\006 \001(\001:\0051e-0"
443 "6B\025\n\023optimality_criteria\"m\n\030AdaptiveLine"
444 "searchParams\022)\n\034step_size_reduction_expo"
445 "nent\030\001 \001(\001:\0030.3\022&\n\031step_size_growth_expo"
446 "nent\030\002 \001(\001:\0030.6\"\220\001\n\022MalitskyPockParams\022)"
447 "\n\034step_size_downscaling_factor\030\001 \001(\001:\0030."
448 "7\022+\n\035linesearch_contraction_factor\030\002 \001(\001"
449 ":\0040.99\022\"\n\027step_size_interpolation\030\003 \001(\001:"
450 "\0011\"\260\020\n\036PrimalDualHybridGradientParams\022K\n"
451 "\024termination_criteria\030\001 \001(\0132-.operations"
452 "_research.pdlp.TerminationCriteria\022\026\n\013nu"
453 "m_threads\030\002 \001(\005:\0011\022\025\n\nnum_shards\030\033 \001(\005:\001"
454 "0\022a\n\016scheduler_type\030 \001(\0162\'.operations_r"
455 "esearch.pdlp.SchedulerType: SCHEDULER_TY"
456 "PE_GOOGLE_THREADPOOL\022\036\n\026record_iteration"
457 "_stats\030\003 \001(\010\022\032\n\017verbosity_level\030\032 \001(\005:\0010"
458 "\022\037\n\024log_interval_seconds\030\037 \001(\001:\0010\022%\n\031maj"
459 "or_iteration_frequency\030\004 \001(\005:\00264\022\'\n\033term"
460 "ination_check_frequency\030\005 \001(\005:\00264\022v\n\020res"
461 "tart_strategy\030\006 \001(\0162H.operations_researc"
462 "h.pdlp.PrimalDualHybridGradientParams.Re"
463 "startStrategy:\022ADAPTIVE_HEURISTIC\022+\n\036pri"
464 "mal_weight_update_smoothing\030\007 \001(\001:\0030.5\022\035"
465 "\n\025initial_primal_weight\030\010 \001(\001\022b\n\020presolv"
466 "e_options\030\020 \001(\0132H.operations_research.pd"
467 "lp.PrimalDualHybridGradientParams.Presol"
468 "veOptions\022 \n\025l_inf_ruiz_iterations\030\t \001(\005"
469 ":\0015\022\037\n\021l2_norm_rescaling\030\n \001(\010:\004true\022-\n "
470 "sufficient_reduction_for_restart\030\013 \001(\001:\003"
471 "0.1\022,\n\037necessary_reduction_for_restart\030\021"
472 " \001(\001:\0030.9\022z\n\017linesearch_rule\030\014 \001(\0162G.ope"
473 "rations_research.pdlp.PrimalDualHybridGr"
474 "adientParams.LinesearchRule:\030ADAPTIVE_LI"
475 "NESEARCH_RULE\022Z\n\036adaptive_linesearch_par"
476 "ameters\030\022 \001(\01322.operations_research.pdlp"
477 ".AdaptiveLinesearchParams\022N\n\030malitsky_po"
478 "ck_parameters\030\023 \001(\0132,.operations_researc"
479 "h.pdlp.MalitskyPockParams\022$\n\031initial_ste"
480 "p_size_scaling\030\031 \001(\001:\0011\022#\n\027random_projec"
481 "tion_seeds\030\034 \003(\005B\002\020\001\0220\n#infinite_constra"
482 "int_bound_threshold\030\026 \001(\001:\003inf\022H\n:handle"
483 "_some_primal_gradients_on_finite_bounds_"
484 "as_residuals\030\035 \001(\010:\004true\0222\n#use_diagonal"
485 "_qp_trust_region_solver\030\027 \001(\010:\005false\0228\n)"
486 "diagonal_qp_trust_region_solver_toleranc"
487 "e\030\030 \001(\001:\0051e-08\022(\n\031use_feasibility_polish"
488 "ing\030\036 \001(\010:\005false\022\?\n0apply_feasibility_po"
489 "lishing_after_limits_reached\030! \001(\010:\005fals"
490 "e\022C\n4apply_feasibility_polishing_if_solv"
491 "er_is_interrupted\030\" \001(\010:\005false\032f\n\017Presol"
492 "veOptions\022\020\n\010use_glop\030\001 \001(\010\022A\n\017glop_para"
493 "meters\030\002 \001(\0132(.operations_research.glop."
494 "GlopParameters\"\224\001\n\017RestartStrategy\022 \n\034RE"
495 "START_STRATEGY_UNSPECIFIED\020\000\022\017\n\013NO_RESTA"
496 "RTS\020\001\022\031\n\025EVERY_MAJOR_ITERATION\020\002\022\026\n\022ADAP"
497 "TIVE_HEURISTIC\020\003\022\033\n\027ADAPTIVE_DISTANCE_BA"
498 "SED\020\004\"\217\001\n\016LinesearchRule\022\037\n\033LINESEARCH_R"
499 "ULE_UNSPECIFIED\020\000\022\034\n\030ADAPTIVE_LINESEARCH"
500 "_RULE\020\001\022!\n\035MALITSKY_POCK_LINESEARCH_RULE"
501 "\020\002\022\033\n\027CONSTANT_STEP_SIZE_RULE\020\003J\004\010\r\020\016J\004\010"
502 "\016\020\017J\004\010\017\020\020J\004\010\024\020\025J\004\010\025\020\026*\215\001\n\016OptimalityNorm"
503 "\022\037\n\033OPTIMALITY_NORM_UNSPECIFIED\020\000\022\031\n\025OPT"
504 "IMALITY_NORM_L_INF\020\001\022\026\n\022OPTIMALITY_NORM_"
505 "L2\020\002\022\'\n#OPTIMALITY_NORM_L_INF_COMPONENTW"
506 "ISE\020\003*z\n\rSchedulerType\022\036\n\032SCHEDULER_TYPE"
507 "_UNSPECIFIED\020\000\022$\n SCHEDULER_TYPE_GOOGLE_"
508 "THREADPOOL\020\001\022#\n\037SCHEDULER_TYPE_EIGEN_THR"
509 "EADPOOL\020\003B1\n\027com.google.ortools.pdlpP\001\252\002"
510 "\023Google.OrTools.PDLP"
512static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL
const
521 descriptor_table_protodef_ortools_2fpdlp_2fsolvers_2eproto,
522 "ortools/pdlp/solvers.proto",
561class TerminationCriteria_SimpleOptimalityCriteria::_Internal {
564 decltype(::std::declval<TerminationCriteria_SimpleOptimalityCriteria>()._impl_._has_bits_);
570#if defined(PROTOBUF_CUSTOM_VTABLE)
573 : ::google::protobuf::Message(arena) {
580#if defined(PROTOBUF_CUSTOM_VTABLE)
583 : ::google::protobuf::Message(arena),
586 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
587 from._internal_metadata_);
589PROTOBUF_NDEBUG_INLINE TerminationCriteria_SimpleOptimalityCriteria::Impl_::Impl_(
590 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
591 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
593 eps_optimal_absolute_{1e-06},
594 eps_optimal_relative_{1e-06} {}
596inline void TerminationCriteria_SimpleOptimalityCriteria::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
597 new (&
_impl_) Impl_(internal_visibility(), arena);
603inline void TerminationCriteria_SimpleOptimalityCriteria::SharedDtor(
MessageLite& self) {
605 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
606 this_.CheckHasBitConsistency();
608 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
609 ABSL_DCHECK(this_.GetArena() ==
nullptr);
613inline void* PROTOBUF_NONNULL TerminationCriteria_SimpleOptimalityCriteria::PlacementNew_(
614 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
615 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
618constexpr auto TerminationCriteria_SimpleOptimalityCriteria::InternalNewImpl_() {
623 return ::google::protobuf::internal::ClassDataFull{
624 ::google::protobuf::internal::ClassData{
629 &TerminationCriteria_SimpleOptimalityCriteria::MergeImpl,
630 ::google::protobuf::Message::GetNewImpl<TerminationCriteria_SimpleOptimalityCriteria>(),
631#if defined(PROTOBUF_CUSTOM_VTABLE)
632 &TerminationCriteria_SimpleOptimalityCriteria::SharedDtor,
639 &TerminationCriteria_SimpleOptimalityCriteria::kDescriptorMethods,
645PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
649PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
650TerminationCriteria_SimpleOptimalityCriteria::GetClassData()
const {
655PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
656const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
657TerminationCriteria_SimpleOptimalityCriteria::_table_ = {
662 offsetof(
decltype(_table_), field_lookup_table),
664 offsetof(
decltype(_table_), field_entries),
667 offsetof(
decltype(_table_), field_names),
670 ::_pbi::TcParser::GenericFallback,
671 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
672 ::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria>(),
676 {::_pbi::TcParser::FastF64S1,
680 {::_pbi::TcParser::FastF64S1,
697 ::google::protobuf::internal::TSanWrite(&
_impl_);
698 ::uint32_t cached_has_bits = 0;
700 (void) cached_has_bits;
702 cached_has_bits =
_impl_._has_bits_[0];
703 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
704 _impl_.eps_optimal_absolute_ = 1e-06;
705 _impl_.eps_optimal_relative_ = 1e-06;
707 _impl_._has_bits_.Clear();
708 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
711#if defined(PROTOBUF_CUSTOM_VTABLE)
713 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
714 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
718 ::uint8_t* PROTOBUF_NONNULL target,
719 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
722 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
723 this_.CheckHasBitConsistency();
726 ::uint32_t cached_has_bits = 0;
727 (void)cached_has_bits;
729 cached_has_bits = this_.
_impl_._has_bits_[0];
731 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
732 target = stream->EnsureSpace(target);
733 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
734 1, this_._internal_eps_optimal_absolute(), target);
738 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
739 target = stream->EnsureSpace(target);
740 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
741 2, this_._internal_eps_optimal_relative(), target);
744 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
746 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
747 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
753#if defined(PROTOBUF_CUSTOM_VTABLE)
761 ::size_t total_size = 0;
763 ::uint32_t cached_has_bits = 0;
765 (void)cached_has_bits;
767 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
768 cached_has_bits = this_.
_impl_._has_bits_[0];
769 total_size += ::absl::popcount(0x00000003U & cached_has_bits) * 9;
770 return this_.MaybeComputeUnknownFieldsSize(total_size,
771 &this_.
_impl_._cached_size_);
774void TerminationCriteria_SimpleOptimalityCriteria::MergeImpl(::google::protobuf::MessageLite& to_msg,
775 const ::google::protobuf::MessageLite& from_msg) {
779 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
780 from.CheckHasBitConsistency();
783 ABSL_DCHECK_NE(&from, _this);
784 ::uint32_t cached_has_bits = 0;
785 (void)cached_has_bits;
787 cached_has_bits = from.
_impl_._has_bits_[0];
788 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
789 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
790 _this->_impl_.eps_optimal_absolute_ = from.
_impl_.eps_optimal_absolute_;
792 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
793 _this->_impl_.eps_optimal_relative_ = from.
_impl_.eps_optimal_relative_;
796 _this->_impl_._has_bits_[0] |= cached_has_bits;
797 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
798 from._internal_metadata_);
803 if (&from ==
this)
return;
811 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
812 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
813 ::google::protobuf::internal::memswap<
817 reinterpret_cast<char*
>(&
_impl_.eps_optimal_absolute_),
818 reinterpret_cast<char*
>(&other->_impl_.eps_optimal_absolute_));
822 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
829 decltype(::std::declval<TerminationCriteria_DetailedOptimalityCriteria>()._impl_._has_bits_);
835#if defined(PROTOBUF_CUSTOM_VTABLE)
838 : ::google::protobuf::Message(arena) {
845#if defined(PROTOBUF_CUSTOM_VTABLE)
848 : ::google::protobuf::Message(arena),
851 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
852 from._internal_metadata_);
854PROTOBUF_NDEBUG_INLINE TerminationCriteria_DetailedOptimalityCriteria::Impl_::Impl_(
855 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
856 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
858 eps_optimal_primal_residual_absolute_{1e-06},
859 eps_optimal_primal_residual_relative_{1e-06},
860 eps_optimal_dual_residual_absolute_{1e-06},
861 eps_optimal_dual_residual_relative_{1e-06},
862 eps_optimal_objective_gap_absolute_{1e-06},
863 eps_optimal_objective_gap_relative_{1e-06} {}
865inline void TerminationCriteria_DetailedOptimalityCriteria::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
866 new (&
_impl_) Impl_(internal_visibility(), arena);
872inline void TerminationCriteria_DetailedOptimalityCriteria::SharedDtor(
MessageLite& self) {
874 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
875 this_.CheckHasBitConsistency();
877 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
878 ABSL_DCHECK(this_.GetArena() ==
nullptr);
882inline void* PROTOBUF_NONNULL TerminationCriteria_DetailedOptimalityCriteria::PlacementNew_(
883 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
884 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
887constexpr auto TerminationCriteria_DetailedOptimalityCriteria::InternalNewImpl_() {
892 return ::google::protobuf::internal::ClassDataFull{
893 ::google::protobuf::internal::ClassData{
898 &TerminationCriteria_DetailedOptimalityCriteria::MergeImpl,
899 ::google::protobuf::Message::GetNewImpl<TerminationCriteria_DetailedOptimalityCriteria>(),
900#if defined(PROTOBUF_CUSTOM_VTABLE)
901 &TerminationCriteria_DetailedOptimalityCriteria::SharedDtor,
908 &TerminationCriteria_DetailedOptimalityCriteria::kDescriptorMethods,
914PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
918PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
919TerminationCriteria_DetailedOptimalityCriteria::GetClassData()
const {
924PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
925const ::_pbi::TcParseTable<3, 6, 0, 0, 2>
926TerminationCriteria_DetailedOptimalityCriteria::_table_ = {
931 offsetof(
decltype(_table_), field_lookup_table),
933 offsetof(
decltype(_table_), field_entries),
936 offsetof(
decltype(_table_), field_names),
939 ::_pbi::TcParser::GenericFallback,
940 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
941 ::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria>(),
944 {::_pbi::TcParser::MiniParse, {}},
946 {::_pbi::TcParser::FastF64S1,
950 {::_pbi::TcParser::FastF64S1,
954 {::_pbi::TcParser::FastF64S1,
958 {::_pbi::TcParser::FastF64S1,
962 {::_pbi::TcParser::FastF64S1,
966 {::_pbi::TcParser::FastF64S1,
969 {::_pbi::TcParser::MiniParse, {}},
992 ::google::protobuf::internal::TSanWrite(&
_impl_);
993 ::uint32_t cached_has_bits = 0;
995 (void) cached_has_bits;
997 cached_has_bits =
_impl_._has_bits_[0];
998 if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
999 _impl_.eps_optimal_primal_residual_absolute_ = 1e-06;
1000 _impl_.eps_optimal_primal_residual_relative_ = 1e-06;
1001 _impl_.eps_optimal_dual_residual_absolute_ = 1e-06;
1002 _impl_.eps_optimal_dual_residual_relative_ = 1e-06;
1003 _impl_.eps_optimal_objective_gap_absolute_ = 1e-06;
1004 _impl_.eps_optimal_objective_gap_relative_ = 1e-06;
1006 _impl_._has_bits_.Clear();
1007 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1010#if defined(PROTOBUF_CUSTOM_VTABLE)
1012 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
1013 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1017 ::uint8_t* PROTOBUF_NONNULL target,
1018 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
1021 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1022 this_.CheckHasBitConsistency();
1025 ::uint32_t cached_has_bits = 0;
1026 (void)cached_has_bits;
1028 cached_has_bits = this_.
_impl_._has_bits_[0];
1030 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1031 target = stream->EnsureSpace(target);
1032 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1033 1, this_._internal_eps_optimal_primal_residual_absolute(), target);
1037 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1038 target = stream->EnsureSpace(target);
1039 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1040 2, this_._internal_eps_optimal_primal_residual_relative(), target);
1044 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1045 target = stream->EnsureSpace(target);
1046 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1047 3, this_._internal_eps_optimal_dual_residual_absolute(), target);
1051 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1052 target = stream->EnsureSpace(target);
1053 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1054 4, this_._internal_eps_optimal_dual_residual_relative(), target);
1058 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1059 target = stream->EnsureSpace(target);
1060 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1061 5, this_._internal_eps_optimal_objective_gap_absolute(), target);
1065 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1066 target = stream->EnsureSpace(target);
1067 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1068 6, this_._internal_eps_optimal_objective_gap_relative(), target);
1071 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1073 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1074 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1080#if defined(PROTOBUF_CUSTOM_VTABLE)
1088 ::size_t total_size = 0;
1090 ::uint32_t cached_has_bits = 0;
1092 (void)cached_has_bits;
1094 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1095 cached_has_bits = this_.
_impl_._has_bits_[0];
1096 total_size += ::absl::popcount(0x0000003fU & cached_has_bits) * 9;
1097 return this_.MaybeComputeUnknownFieldsSize(total_size,
1098 &this_.
_impl_._cached_size_);
1101void TerminationCriteria_DetailedOptimalityCriteria::MergeImpl(::google::protobuf::MessageLite& to_msg,
1102 const ::google::protobuf::MessageLite& from_msg) {
1106 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1107 from.CheckHasBitConsistency();
1110 ABSL_DCHECK_NE(&from, _this);
1111 ::uint32_t cached_has_bits = 0;
1112 (void)cached_has_bits;
1114 cached_has_bits = from.
_impl_._has_bits_[0];
1115 if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
1116 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1117 _this->_impl_.eps_optimal_primal_residual_absolute_ = from.
_impl_.eps_optimal_primal_residual_absolute_;
1119 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1120 _this->_impl_.eps_optimal_primal_residual_relative_ = from.
_impl_.eps_optimal_primal_residual_relative_;
1122 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1123 _this->_impl_.eps_optimal_dual_residual_absolute_ = from.
_impl_.eps_optimal_dual_residual_absolute_;
1125 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1126 _this->_impl_.eps_optimal_dual_residual_relative_ = from.
_impl_.eps_optimal_dual_residual_relative_;
1128 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1129 _this->_impl_.eps_optimal_objective_gap_absolute_ = from.
_impl_.eps_optimal_objective_gap_absolute_;
1131 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1132 _this->_impl_.eps_optimal_objective_gap_relative_ = from.
_impl_.eps_optimal_objective_gap_relative_;
1135 _this->_impl_._has_bits_[0] |= cached_has_bits;
1136 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1137 from._internal_metadata_);
1142 if (&from ==
this)
return;
1150 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1151 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1152 ::google::protobuf::internal::memswap<
1156 reinterpret_cast<char*
>(&
_impl_.eps_optimal_primal_residual_absolute_),
1157 reinterpret_cast<char*
>(&other->_impl_.eps_optimal_primal_residual_absolute_));
1161 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1168 decltype(::std::declval<TerminationCriteria>()._impl_._has_bits_);
1176 ::google::protobuf::Arena* message_arena = GetArena();
1180 if (message_arena != submessage_arena) {
1183 set_has_simple_optimality_criteria();
1189 ::google::protobuf::Arena* message_arena = GetArena();
1190 clear_optimality_criteria();
1193 if (message_arena != submessage_arena) {
1196 set_has_detailed_optimality_criteria();
1202#if defined(PROTOBUF_CUSTOM_VTABLE)
1205 : ::google::protobuf::Message(arena) {
1210PROTOBUF_NDEBUG_INLINE TerminationCriteria::Impl_::Impl_(
1211 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
1212 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
1213 [[maybe_unused]] const ::operations_research::pdlp::TerminationCriteria& from_msg)
1214 : _has_bits_{from._has_bits_},
1216 optimality_criteria_{},
1217 _oneof_case_{from._oneof_case_[0]} {}
1220 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
1222#if defined(PROTOBUF_CUSTOM_VTABLE)
1225 : ::google::protobuf::Message(arena) {
1229 _internal_metadata_.
MergeFrom<::google::protobuf::UnknownFieldSet>(
1230 from._internal_metadata_);
1231 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
1232 ::memcpy(
reinterpret_cast<char*
>(&_impl_) +
1233 offsetof(Impl_, eps_optimal_absolute_),
1234 reinterpret_cast<const char*
>(&from._impl_) +
1235 offsetof(Impl_, eps_optimal_absolute_),
1236 offsetof(Impl_, kkt_matrix_pass_limit_) -
1237 offsetof(Impl_, eps_optimal_absolute_) +
1238 sizeof(Impl_::kkt_matrix_pass_limit_));
1239 switch (optimality_criteria_case()) {
1240 case OPTIMALITY_CRITERIA_NOT_SET:
1242 case kSimpleOptimalityCriteria:
1243 _impl_.optimality_criteria_.simple_optimality_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.optimality_criteria_.simple_optimality_criteria_);
1245 case kDetailedOptimalityCriteria:
1246 _impl_.optimality_criteria_.detailed_optimality_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.optimality_criteria_.detailed_optimality_criteria_);
1252PROTOBUF_NDEBUG_INLINE TerminationCriteria::Impl_::Impl_(
1253 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
1254 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1256 eps_optimal_absolute_{1e-06},
1257 eps_optimal_relative_{1e-06},
1258 eps_primal_infeasible_{1e-08},
1259 optimality_norm_{static_cast< ::operations_research::pdlp::
OptimalityNorm >(2)},
1260 iteration_limit_{2147483647},
1261 eps_dual_infeasible_{1e-08},
1262 time_sec_limit_{std::numeric_limits<double>::infinity()},
1263 kkt_matrix_pass_limit_{std::numeric_limits<double>::infinity()},
1264 optimality_criteria_{},
1267inline void TerminationCriteria::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
1268 new (&
_impl_) Impl_(internal_visibility(), arena);
1274inline void TerminationCriteria::SharedDtor(MessageLite& self) {
1276 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1277 this_.CheckHasBitConsistency();
1279 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
1280 ABSL_DCHECK(this_.GetArena() ==
nullptr);
1281 if (this_.has_optimality_criteria()) {
1289 ::google::protobuf::internal::TSanWrite(&
_impl_);
1292 if (GetArena() ==
nullptr) {
1293 delete _impl_.optimality_criteria_.simple_optimality_criteria_;
1294 }
else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
1295 ::google::protobuf::internal::MaybePoisonAfterClear(
_impl_.optimality_criteria_.simple_optimality_criteria_);
1300 if (GetArena() ==
nullptr) {
1301 delete _impl_.optimality_criteria_.detailed_optimality_criteria_;
1302 }
else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
1303 ::google::protobuf::internal::MaybePoisonAfterClear(
_impl_.optimality_criteria_.detailed_optimality_criteria_);
1315inline void* PROTOBUF_NONNULL TerminationCriteria::PlacementNew_(
1316 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
1317 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
1320constexpr auto TerminationCriteria::InternalNewImpl_() {
1321 return ::google::protobuf::internal::MessageCreator::CopyInit(
sizeof(
TerminationCriteria),
1325 return ::google::protobuf::internal::ClassDataFull{
1326 ::google::protobuf::internal::ClassData{
1331 &TerminationCriteria::MergeImpl,
1332 ::google::protobuf::Message::GetNewImpl<TerminationCriteria>(),
1333#if defined(PROTOBUF_CUSTOM_VTABLE)
1334 &TerminationCriteria::SharedDtor,
1341 &TerminationCriteria::kDescriptorMethods,
1347PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1351PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1352TerminationCriteria::GetClassData()
const {
1357PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1358const ::_pbi::TcParseTable<3, 10, 3, 0, 2>
1359TerminationCriteria::_table_ = {
1361 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_._has_bits_),
1364 offsetof(
decltype(_table_), field_lookup_table),
1366 offsetof(
decltype(_table_), field_entries),
1369 offsetof(
decltype(_table_), aux_entries),
1372 ::_pbi::TcParser::GenericFallback,
1373 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1374 ::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria>(),
1378 {::_pbi::TcParser::FastF64S1,
1380 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.kkt_matrix_pass_limit_)}},
1382 {::_pbi::TcParser::FastEr0S1,
1386 {::_pbi::TcParser::FastF64S1,
1390 {::_pbi::TcParser::FastF64S1,
1394 {::_pbi::TcParser::FastF64S1,
1398 {::_pbi::TcParser::FastF64S1,
1402 {::_pbi::TcParser::FastF64S1,
1406 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(
TerminationCriteria, _impl_.iteration_limit_), 4>(),
1413 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.optimality_norm_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1415 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.eps_optimal_absolute_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1417 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.eps_optimal_relative_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1419 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.eps_primal_infeasible_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1421 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.eps_dual_infeasible_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1423 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.time_sec_limit_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1425 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.iteration_limit_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1427 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.kkt_matrix_pass_limit_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1429 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.optimality_criteria_.simple_optimality_criteria_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
1431 {PROTOBUF_FIELD_OFFSET(
TerminationCriteria, _impl_.optimality_criteria_.detailed_optimality_criteria_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
1434 {::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria>()},
1435 {::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria>()},
1443 ::google::protobuf::internal::TSanWrite(&
_impl_);
1444 ::uint32_t cached_has_bits = 0;
1446 (void) cached_has_bits;
1448 cached_has_bits =
_impl_._has_bits_[0];
1449 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1450 _impl_.eps_optimal_absolute_ = 1e-06;
1451 _impl_.eps_optimal_relative_ = 1e-06;
1452 _impl_.eps_primal_infeasible_ = 1e-08;
1453 _impl_.optimality_norm_ = 2;
1454 _impl_.iteration_limit_ = 2147483647;
1455 _impl_.eps_dual_infeasible_ = 1e-08;
1456 _impl_.time_sec_limit_ = std::numeric_limits<double>::infinity();
1457 _impl_.kkt_matrix_pass_limit_ = std::numeric_limits<double>::infinity();
1460 _impl_._has_bits_.Clear();
1461 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1464#if defined(PROTOBUF_CUSTOM_VTABLE)
1466 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
1467 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1471 ::uint8_t* PROTOBUF_NONNULL target,
1472 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
1475 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1476 this_.CheckHasBitConsistency();
1479 ::uint32_t cached_has_bits = 0;
1480 (void)cached_has_bits;
1482 cached_has_bits = this_.
_impl_._has_bits_[0];
1484 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1485 target = stream->EnsureSpace(target);
1486 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1487 1, this_._internal_optimality_norm(), target);
1491 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1492 target = stream->EnsureSpace(target);
1493 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1494 2, this_._internal_eps_optimal_absolute(), target);
1498 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1499 target = stream->EnsureSpace(target);
1500 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1501 3, this_._internal_eps_optimal_relative(), target);
1505 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1506 target = stream->EnsureSpace(target);
1507 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1508 4, this_._internal_eps_primal_infeasible(), target);
1512 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1513 target = stream->EnsureSpace(target);
1514 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1515 5, this_._internal_eps_dual_infeasible(), target);
1519 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1520 target = stream->EnsureSpace(target);
1521 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1522 6, this_._internal_time_sec_limit(), target);
1526 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1528 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
1529 stream, this_._internal_iteration_limit(), target);
1533 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1534 target = stream->EnsureSpace(target);
1535 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1536 8, this_._internal_kkt_matrix_pass_limit(), target);
1541 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1547 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1555 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1557 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1558 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1564#if defined(PROTOBUF_CUSTOM_VTABLE)
1572 ::size_t total_size = 0;
1574 ::uint32_t cached_has_bits = 0;
1576 (void)cached_has_bits;
1578 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1579 cached_has_bits = this_._impl_._has_bits_[0];
1580 total_size += ::absl::popcount(0x000000e7U & cached_has_bits) * 9;
1581 if (BatchCheckHasBit(cached_has_bits, 0x00000018U)) {
1583 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1585 ::_pbi::WireFormatLite::EnumSize(this_._internal_optimality_norm());
1588 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1589 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1590 this_._internal_iteration_limit());
1593 switch (this_.optimality_criteria_case()) {
1597 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.optimality_criteria_.simple_optimality_criteria_);
1603 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.optimality_criteria_.detailed_optimality_criteria_);
1610 return this_.MaybeComputeUnknownFieldsSize(total_size,
1611 &this_._impl_._cached_size_);
1614void TerminationCriteria::MergeImpl(::google::protobuf::MessageLite& to_msg,
1615 const ::google::protobuf::MessageLite& from_msg) {
1619 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1620 from.CheckHasBitConsistency();
1624 ABSL_DCHECK_NE(&from, _this);
1625 ::uint32_t cached_has_bits = 0;
1626 (void)cached_has_bits;
1628 cached_has_bits = from._impl_._has_bits_[0];
1629 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1630 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1631 _this->_impl_.eps_optimal_absolute_ = from._impl_.eps_optimal_absolute_;
1633 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1634 _this->_impl_.eps_optimal_relative_ = from._impl_.eps_optimal_relative_;
1636 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1637 _this->_impl_.eps_primal_infeasible_ = from._impl_.eps_primal_infeasible_;
1639 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1640 _this->_impl_.optimality_norm_ = from._impl_.optimality_norm_;
1642 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1643 _this->_impl_.iteration_limit_ = from._impl_.iteration_limit_;
1645 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1646 _this->_impl_.eps_dual_infeasible_ = from._impl_.eps_dual_infeasible_;
1648 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1649 _this->_impl_.time_sec_limit_ = from._impl_.time_sec_limit_;
1651 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1652 _this->_impl_.kkt_matrix_pass_limit_ = from._impl_.kkt_matrix_pass_limit_;
1655 _this->_impl_._has_bits_[0] |= cached_has_bits;
1656 if (
const uint32_t oneof_from_case =
1657 from._impl_._oneof_case_[0]) {
1658 const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
1659 const bool oneof_needs_init = oneof_to_case != oneof_from_case;
1660 if (oneof_needs_init) {
1661 if (oneof_to_case != 0) {
1662 _this->clear_optimality_criteria();
1664 _this->_impl_._oneof_case_[0] = oneof_from_case;
1667 switch (oneof_from_case) {
1669 if (oneof_needs_init) {
1670 _this->_impl_.optimality_criteria_.simple_optimality_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.optimality_criteria_.simple_optimality_criteria_);
1672 _this->_impl_.optimality_criteria_.simple_optimality_criteria_->MergeFrom(*from._impl_.optimality_criteria_.simple_optimality_criteria_);
1677 if (oneof_needs_init) {
1678 _this->_impl_.optimality_criteria_.detailed_optimality_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.optimality_criteria_.detailed_optimality_criteria_);
1680 _this->_impl_.optimality_criteria_.detailed_optimality_criteria_->MergeFrom(*from._impl_.optimality_criteria_.detailed_optimality_criteria_);
1688 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1689 from._internal_metadata_);
1694 if (&from ==
this)
return;
1700void TerminationCriteria::InternalSwap(
TerminationCriteria* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
1702 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1703 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1704 ::google::protobuf::internal::memswap<
1708 reinterpret_cast<char*
>(&
_impl_.eps_optimal_absolute_),
1709 reinterpret_cast<char*
>(&other->_impl_.eps_optimal_absolute_));
1710 swap(
_impl_.optimality_criteria_, other->_impl_.optimality_criteria_);
1711 swap(
_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
1715 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1722 decltype(::std::declval<AdaptiveLinesearchParams>()._impl_._has_bits_);
1728#if defined(PROTOBUF_CUSTOM_VTABLE)
1731 : ::google::protobuf::Message(arena) {
1738#if defined(PROTOBUF_CUSTOM_VTABLE)
1741 : ::google::protobuf::Message(arena),
1744 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1745 from._internal_metadata_);
1747PROTOBUF_NDEBUG_INLINE AdaptiveLinesearchParams::Impl_::Impl_(
1748 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
1749 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1751 step_size_reduction_exponent_{0.3},
1752 step_size_growth_exponent_{0.6} {}
1754inline void AdaptiveLinesearchParams::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
1755 new (&
_impl_) Impl_(internal_visibility(), arena);
1763 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1764 this_.CheckHasBitConsistency();
1766 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
1767 ABSL_DCHECK(this_.GetArena() ==
nullptr);
1771inline void* PROTOBUF_NONNULL AdaptiveLinesearchParams::PlacementNew_(
1772 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
1773 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
1776constexpr auto AdaptiveLinesearchParams::InternalNewImpl_() {
1777 return ::google::protobuf::internal::MessageCreator::CopyInit(
sizeof(AdaptiveLinesearchParams),
1778 alignof(AdaptiveLinesearchParams));
1781 return ::google::protobuf::internal::ClassDataFull{
1782 ::google::protobuf::internal::ClassData{
1787 &AdaptiveLinesearchParams::MergeImpl,
1788 ::google::protobuf::Message::GetNewImpl<AdaptiveLinesearchParams>(),
1789#if defined(PROTOBUF_CUSTOM_VTABLE)
1790 &AdaptiveLinesearchParams::SharedDtor,
1797 &AdaptiveLinesearchParams::kDescriptorMethods,
1803PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1807PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1808AdaptiveLinesearchParams::GetClassData()
const {
1813PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1814const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
1815AdaptiveLinesearchParams::_table_ = {
1817 PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams,
_impl_._has_bits_),
1820 offsetof(
decltype(_table_), field_lookup_table),
1822 offsetof(
decltype(_table_), field_entries),
1825 offsetof(
decltype(_table_), field_names),
1828 ::_pbi::TcParser::GenericFallback,
1829 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1830 ::_pbi::TcParser::GetTable<::operations_research::pdlp::AdaptiveLinesearchParams>(),
1834 {::_pbi::TcParser::FastF64S1,
1836 PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams,
_impl_.step_size_growth_exponent_)}},
1838 {::_pbi::TcParser::FastF64S1,
1840 PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams,
_impl_.step_size_reduction_exponent_)}},
1845 {PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams,
_impl_.step_size_reduction_exponent_),
_Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1847 {PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams,
_impl_.step_size_growth_exponent_),
_Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1855 ::google::protobuf::internal::TSanWrite(&
_impl_);
1856 ::uint32_t cached_has_bits = 0;
1858 (void) cached_has_bits;
1860 cached_has_bits =
_impl_._has_bits_[0];
1861 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
1862 _impl_.step_size_reduction_exponent_ = 0.3;
1863 _impl_.step_size_growth_exponent_ = 0.6;
1865 _impl_._has_bits_.Clear();
1866 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1869#if defined(PROTOBUF_CUSTOM_VTABLE)
1871 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
1872 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1873 const AdaptiveLinesearchParams& this_ =
static_cast<const AdaptiveLinesearchParams&
>(
base);
1876 ::uint8_t* PROTOBUF_NONNULL target,
1877 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
1878 const AdaptiveLinesearchParams& this_ = *
this;
1880 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1881 this_.CheckHasBitConsistency();
1884 ::uint32_t cached_has_bits = 0;
1885 (void)cached_has_bits;
1887 cached_has_bits = this_._impl_._has_bits_[0];
1889 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1890 target = stream->EnsureSpace(target);
1891 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1892 1, this_._internal_step_size_reduction_exponent(), target);
1896 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1897 target = stream->EnsureSpace(target);
1898 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1899 2, this_._internal_step_size_growth_exponent(), target);
1902 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1904 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1905 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1911#if defined(PROTOBUF_CUSTOM_VTABLE)
1913 const AdaptiveLinesearchParams& this_ =
static_cast<const AdaptiveLinesearchParams&
>(base);
1916 const AdaptiveLinesearchParams& this_ = *
this;
1919 ::size_t total_size = 0;
1921 ::uint32_t cached_has_bits = 0;
1923 (void)cached_has_bits;
1925 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1926 cached_has_bits = this_._impl_._has_bits_[0];
1927 total_size += ::absl::popcount(0x00000003U & cached_has_bits) * 9;
1928 return this_.MaybeComputeUnknownFieldsSize(total_size,
1929 &this_._impl_._cached_size_);
1932void AdaptiveLinesearchParams::MergeImpl(::google::protobuf::MessageLite& to_msg,
1933 const ::google::protobuf::MessageLite& from_msg) {
1937 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1938 from.CheckHasBitConsistency();
1941 ABSL_DCHECK_NE(&from, _this);
1942 ::uint32_t cached_has_bits = 0;
1943 (void)cached_has_bits;
1945 cached_has_bits = from.
_impl_._has_bits_[0];
1946 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
1947 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1948 _this->_impl_.step_size_reduction_exponent_ = from.
_impl_.step_size_reduction_exponent_;
1950 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1951 _this->_impl_.step_size_growth_exponent_ = from.
_impl_.step_size_growth_exponent_;
1954 _this->_impl_._has_bits_[0] |= cached_has_bits;
1955 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1956 from._internal_metadata_);
1961 if (&from ==
this)
return;
1969 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1970 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1971 ::google::protobuf::internal::memswap<
1975 reinterpret_cast<char*
>(&
_impl_.step_size_reduction_exponent_),
1976 reinterpret_cast<char*
>(&other->_impl_.step_size_reduction_exponent_));
1980 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1987 decltype(::std::declval<MalitskyPockParams>()._impl_._has_bits_);
1988 static constexpr ::int32_t kHasBitsOffset =
1993#if defined(PROTOBUF_CUSTOM_VTABLE)
1996 : ::google::protobuf::Message(arena) {
2003#if defined(PROTOBUF_CUSTOM_VTABLE)
2006 : ::google::protobuf::Message(arena),
2009 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2010 from._internal_metadata_);
2012PROTOBUF_NDEBUG_INLINE MalitskyPockParams::Impl_::Impl_(
2013 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2014 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2016 step_size_downscaling_factor_{0.7},
2017 linesearch_contraction_factor_{0.99},
2018 step_size_interpolation_{1} {}
2020inline void MalitskyPockParams::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2021 new (&
_impl_) Impl_(internal_visibility(), arena);
2027inline void MalitskyPockParams::SharedDtor(
MessageLite& self) {
2029 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2030 this_.CheckHasBitConsistency();
2032 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2033 ABSL_DCHECK(this_.GetArena() ==
nullptr);
2037inline void* PROTOBUF_NONNULL MalitskyPockParams::PlacementNew_(
2038 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
2039 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2040 return ::new (mem) MalitskyPockParams(arena);
2042constexpr auto MalitskyPockParams::InternalNewImpl_() {
2043 return ::google::protobuf::internal::MessageCreator::CopyInit(
sizeof(MalitskyPockParams),
2044 alignof(MalitskyPockParams));
2047 return ::google::protobuf::internal::ClassDataFull{
2048 ::google::protobuf::internal::ClassData{
2053 &MalitskyPockParams::MergeImpl,
2054 ::google::protobuf::Message::GetNewImpl<MalitskyPockParams>(),
2055#if defined(PROTOBUF_CUSTOM_VTABLE)
2056 &MalitskyPockParams::SharedDtor,
2063 &MalitskyPockParams::kDescriptorMethods,
2069PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2073PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2074MalitskyPockParams::GetClassData()
const {
2079PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2080const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
2081MalitskyPockParams::_table_ = {
2083 PROTOBUF_FIELD_OFFSET(MalitskyPockParams,
_impl_._has_bits_),
2086 offsetof(
decltype(_table_), field_lookup_table),
2088 offsetof(
decltype(_table_), field_entries),
2091 offsetof(
decltype(_table_), field_names),
2094 ::_pbi::TcParser::GenericFallback,
2095 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2096 ::_pbi::TcParser::GetTable<::operations_research::pdlp::MalitskyPockParams>(),
2099 {::_pbi::TcParser::MiniParse, {}},
2101 {::_pbi::TcParser::FastF64S1,
2103 PROTOBUF_FIELD_OFFSET(MalitskyPockParams,
_impl_.step_size_downscaling_factor_)}},
2105 {::_pbi::TcParser::FastF64S1,
2107 PROTOBUF_FIELD_OFFSET(MalitskyPockParams,
_impl_.linesearch_contraction_factor_)}},
2109 {::_pbi::TcParser::FastF64S1,
2111 PROTOBUF_FIELD_OFFSET(MalitskyPockParams,
_impl_.step_size_interpolation_)}},
2116 {PROTOBUF_FIELD_OFFSET(MalitskyPockParams,
_impl_.step_size_downscaling_factor_),
_Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2118 {PROTOBUF_FIELD_OFFSET(MalitskyPockParams,
_impl_.linesearch_contraction_factor_),
_Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2120 {PROTOBUF_FIELD_OFFSET(MalitskyPockParams,
_impl_.step_size_interpolation_),
_Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2128 ::google::protobuf::internal::TSanWrite(&
_impl_);
2129 ::uint32_t cached_has_bits = 0;
2131 (void) cached_has_bits;
2133 cached_has_bits =
_impl_._has_bits_[0];
2134 if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
2135 _impl_.step_size_downscaling_factor_ = 0.7;
2136 _impl_.linesearch_contraction_factor_ = 0.99;
2137 _impl_.step_size_interpolation_ = 1;
2139 _impl_._has_bits_.Clear();
2140 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2143#if defined(PROTOBUF_CUSTOM_VTABLE)
2145 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
2146 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2147 const MalitskyPockParams& this_ =
static_cast<const MalitskyPockParams&
>(
base);
2150 ::uint8_t* PROTOBUF_NONNULL target,
2151 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
2152 const MalitskyPockParams& this_ = *
this;
2154 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2155 this_.CheckHasBitConsistency();
2158 ::uint32_t cached_has_bits = 0;
2159 (void)cached_has_bits;
2161 cached_has_bits = this_.
_impl_._has_bits_[0];
2163 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2164 target = stream->EnsureSpace(target);
2165 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2166 1, this_._internal_step_size_downscaling_factor(), target);
2170 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2171 target = stream->EnsureSpace(target);
2172 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2173 2, this_._internal_linesearch_contraction_factor(), target);
2177 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2178 target = stream->EnsureSpace(target);
2179 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2180 3, this_._internal_step_size_interpolation(), target);
2183 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
2185 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
2186 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
2192#if defined(PROTOBUF_CUSTOM_VTABLE)
2194 const MalitskyPockParams& this_ =
static_cast<const MalitskyPockParams&
>(base);
2197 const MalitskyPockParams& this_ = *
this;
2200 ::size_t total_size = 0;
2202 ::uint32_t cached_has_bits = 0;
2204 (void)cached_has_bits;
2206 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
2207 cached_has_bits = this_._impl_._has_bits_[0];
2208 total_size += ::absl::popcount(0x00000007U & cached_has_bits) * 9;
2209 return this_.MaybeComputeUnknownFieldsSize(total_size,
2210 &this_._impl_._cached_size_);
2213void MalitskyPockParams::MergeImpl(::google::protobuf::MessageLite& to_msg,
2214 const ::google::protobuf::MessageLite& from_msg) {
2218 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2219 from.CheckHasBitConsistency();
2222 ABSL_DCHECK_NE(&from, _this);
2223 ::uint32_t cached_has_bits = 0;
2224 (void)cached_has_bits;
2226 cached_has_bits = from.
_impl_._has_bits_[0];
2227 if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
2228 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2229 _this->_impl_.step_size_downscaling_factor_ = from.
_impl_.step_size_downscaling_factor_;
2231 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2232 _this->_impl_.linesearch_contraction_factor_ = from.
_impl_.linesearch_contraction_factor_;
2234 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2235 _this->_impl_.step_size_interpolation_ = from.
_impl_.step_size_interpolation_;
2238 _this->_impl_._has_bits_[0] |= cached_has_bits;
2239 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2240 from._internal_metadata_);
2245 if (&from ==
this)
return;
2251void MalitskyPockParams::InternalSwap(
MalitskyPockParams* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
2253 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2254 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
2255 ::google::protobuf::internal::memswap<
2259 reinterpret_cast<char*
>(&
_impl_.step_size_downscaling_factor_),
2260 reinterpret_cast<char*
>(&other->_impl_.step_size_downscaling_factor_));
2264 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
2271 decltype(::std::declval<PrimalDualHybridGradientParams_PresolveOptions>()._impl_._has_bits_);
2272 static constexpr ::int32_t kHasBitsOffset =
2277 ::google::protobuf::internal::TSanWrite(&
_impl_);
2279 ClearHasBit(
_impl_._has_bits_[0],
2283#if defined(PROTOBUF_CUSTOM_VTABLE)
2286 : ::google::protobuf::Message(arena) {
2291PROTOBUF_NDEBUG_INLINE PrimalDualHybridGradientParams_PresolveOptions::Impl_::Impl_(
2292 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2293 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
2294 [[maybe_unused]] const ::operations_research::pdlp::PrimalDualHybridGradientParams_PresolveOptions& from_msg)
2295 : _has_bits_{from._has_bits_},
2299 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
2301#if defined(PROTOBUF_CUSTOM_VTABLE)
2304 : ::google::protobuf::Message(arena) {
2308 _internal_metadata_.
MergeFrom<::google::protobuf::UnknownFieldSet>(
2309 from._internal_metadata_);
2310 new (&
_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
2311 ::uint32_t cached_has_bits =
_impl_._has_bits_[0];
2312 _impl_.glop_parameters_ = (CheckHasBit(cached_has_bits, 0x00000001U))
2313 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.glop_parameters_)
2315 _impl_.use_glop_ = from._impl_.use_glop_;
2319PROTOBUF_NDEBUG_INLINE PrimalDualHybridGradientParams_PresolveOptions::Impl_::Impl_(
2320 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2321 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2322 : _cached_size_{0} {}
2324inline void PrimalDualHybridGradientParams_PresolveOptions::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2325 new (&
_impl_) Impl_(internal_visibility(), arena);
2326 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
2327 offsetof(Impl_, glop_parameters_),
2329 offsetof(Impl_, use_glop_) -
2330 offsetof(Impl_, glop_parameters_) +
2331 sizeof(Impl_::use_glop_));
2337inline void PrimalDualHybridGradientParams_PresolveOptions::SharedDtor(
MessageLite& self) {
2339 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2340 this_.CheckHasBitConsistency();
2342 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2343 ABSL_DCHECK(this_.GetArena() ==
nullptr);
2344 delete this_.
_impl_.glop_parameters_;
2348inline void* PROTOBUF_NONNULL PrimalDualHybridGradientParams_PresolveOptions::PlacementNew_(
2349 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
2350 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2351 return ::new (mem) PrimalDualHybridGradientParams_PresolveOptions(arena);
2353constexpr auto PrimalDualHybridGradientParams_PresolveOptions::InternalNewImpl_() {
2354 return ::google::protobuf::internal::MessageCreator::ZeroInit(
sizeof(PrimalDualHybridGradientParams_PresolveOptions),
2355 alignof(PrimalDualHybridGradientParams_PresolveOptions));
2358 return ::google::protobuf::internal::ClassDataFull{
2359 ::google::protobuf::internal::ClassData{
2364 &PrimalDualHybridGradientParams_PresolveOptions::MergeImpl,
2365 ::google::protobuf::Message::GetNewImpl<PrimalDualHybridGradientParams_PresolveOptions>(),
2366#if defined(PROTOBUF_CUSTOM_VTABLE)
2367 &PrimalDualHybridGradientParams_PresolveOptions::SharedDtor,
2374 &PrimalDualHybridGradientParams_PresolveOptions::kDescriptorMethods,
2380PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2384PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2385PrimalDualHybridGradientParams_PresolveOptions::GetClassData()
const {
2390PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2391const ::_pbi::TcParseTable<1, 2, 1, 0, 2>
2392PrimalDualHybridGradientParams_PresolveOptions::_table_ = {
2394 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions,
_impl_._has_bits_),
2397 offsetof(
decltype(_table_), field_lookup_table),
2399 offsetof(
decltype(_table_), field_entries),
2402 offsetof(
decltype(_table_), aux_entries),
2405 ::_pbi::TcParser::GenericFallback,
2406 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2407 ::_pbi::TcParser::GetTable<::operations_research::pdlp::PrimalDualHybridGradientParams_PresolveOptions>(),
2411 {::_pbi::TcParser::FastMtS1,
2413 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions,
_impl_.glop_parameters_)}},
2415 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PrimalDualHybridGradientParams_PresolveOptions,
_impl_.use_glop_), 1>(),
2417 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions,
_impl_.use_glop_)}},
2422 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions,
_impl_.use_glop_),
_Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2424 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions,
_impl_.glop_parameters_),
_Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2427 {::_pbi::TcParser::GetTable<::operations_research::glop::GlopParameters>()},
2434 ::google::protobuf::internal::TSanWrite(&
_impl_);
2435 ::uint32_t cached_has_bits = 0;
2437 (void) cached_has_bits;
2439 cached_has_bits =
_impl_._has_bits_[0];
2440 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2441 ABSL_DCHECK(
_impl_.glop_parameters_ !=
nullptr);
2442 _impl_.glop_parameters_->Clear();
2444 _impl_.use_glop_ =
false;
2445 _impl_._has_bits_.Clear();
2446 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2449#if defined(PROTOBUF_CUSTOM_VTABLE)
2451 const ::google::protobuf::MessageLite&
base, ::uint8_t* PROTOBUF_NONNULL target,
2452 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2453 const PrimalDualHybridGradientParams_PresolveOptions& this_ =
static_cast<const PrimalDualHybridGradientParams_PresolveOptions&
>(
base);
2456 ::uint8_t* PROTOBUF_NONNULL target,
2457 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
2458 const PrimalDualHybridGradientParams_PresolveOptions& this_ = *
this;
2460 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2461 this_.CheckHasBitConsistency();
2464 ::uint32_t cached_has_bits = 0;
2465 (void)cached_has_bits;
2467 cached_has_bits = this_.
_impl_._has_bits_[0];
2469 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2470 target = stream->EnsureSpace(target);
2471 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2472 1, this_._internal_use_glop(), target);
2476 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2477 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2478 2, *this_._impl_.glop_parameters_, this_._impl_.glop_parameters_->GetCachedSize(), target,
2482 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
2484 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
2485 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
2491#if defined(PROTOBUF_CUSTOM_VTABLE)
2493 const PrimalDualHybridGradientParams_PresolveOptions& this_ =
static_cast<const PrimalDualHybridGradientParams_PresolveOptions&
>(base);
2496 const PrimalDualHybridGradientParams_PresolveOptions& this_ = *
this;
2499 ::size_t total_size = 0;
2501 ::uint32_t cached_has_bits = 0;
2503 (void)cached_has_bits;
2505 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
2506 cached_has_bits = this_._impl_._has_bits_[0];
2507 total_size +=
static_cast<bool>(0x00000002U & cached_has_bits) * 2;
2510 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2512 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.glop_parameters_);
2515 return this_.MaybeComputeUnknownFieldsSize(total_size,
2516 &this_._impl_._cached_size_);
2519void PrimalDualHybridGradientParams_PresolveOptions::MergeImpl(::google::protobuf::MessageLite& to_msg,
2520 const ::google::protobuf::MessageLite& from_msg) {
2522 static_cast<PrimalDualHybridGradientParams_PresolveOptions*
>(&to_msg);
2523 auto& from =
static_cast<const PrimalDualHybridGradientParams_PresolveOptions&
>(from_msg);
2524 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2525 from.CheckHasBitConsistency();
2529 ABSL_DCHECK_NE(&from, _this);
2530 ::uint32_t cached_has_bits = 0;
2531 (void)cached_has_bits;
2533 cached_has_bits = from._impl_._has_bits_[0];
2534 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
2535 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2536 ABSL_DCHECK(from._impl_.glop_parameters_ !=
nullptr);
2537 if (_this->_impl_.glop_parameters_ ==
nullptr) {
2538 _this->_impl_.glop_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.glop_parameters_);
2540 _this->_impl_.glop_parameters_->MergeFrom(*from._impl_.glop_parameters_);
2543 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2544 _this->_impl_.use_glop_ = from._impl_.use_glop_;
2547 _this->_impl_._has_bits_[0] |= cached_has_bits;
2548 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2549 from._internal_metadata_);
2554 if (&from ==
this)
return;
2562 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2563 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
2564 ::google::protobuf::internal::memswap<
2568 reinterpret_cast<char*
>(&
_impl_.glop_parameters_),
2569 reinterpret_cast<char*
>(&other->_impl_.glop_parameters_));
2573 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
2577class PrimalDualHybridGradientParams::_Internal {
2580 decltype(::std::declval<PrimalDualHybridGradientParams>()._impl_._has_bits_);
2581 static constexpr ::int32_t kHasBitsOffset =
2586#if defined(PROTOBUF_CUSTOM_VTABLE)
2589 : ::google::protobuf::Message(arena) {
2594PROTOBUF_NDEBUG_INLINE PrimalDualHybridGradientParams::Impl_::Impl_(
2595 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2596 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const Impl_& from,
2597 [[maybe_unused]] const ::operations_research::pdlp::PrimalDualHybridGradientParams& from_msg)
2598 : _has_bits_{from._has_bits_},
2600 random_projection_seeds_{visibility, arena, from.random_projection_seeds_},
2601 _random_projection_seeds_cached_byte_size_{0} {}
2604 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
2605 const PrimalDualHybridGradientParams& from)
2606#if defined(PROTOBUF_CUSTOM_VTABLE)
2609 : ::google::protobuf::Message(arena) {
2611 PrimalDualHybridGradientParams*
const _this =
this;
2613 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2614 from._internal_metadata_);
2615 new (&
_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
2616 ::uint32_t cached_has_bits =
_impl_._has_bits_[0];
2617 _impl_.termination_criteria_ = (CheckHasBit(cached_has_bits, 0x00000002U))
2618 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.termination_criteria_)
2620 _impl_.presolve_options_ = (CheckHasBit(cached_has_bits, 0x00000004U))
2621 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.presolve_options_)
2623 _impl_.adaptive_linesearch_parameters_ = (CheckHasBit(cached_has_bits, 0x00000008U))
2624 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.adaptive_linesearch_parameters_)
2626 _impl_.malitsky_pock_parameters_ = (CheckHasBit(cached_has_bits, 0x00000010U))
2627 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.malitsky_pock_parameters_)
2629 ::memcpy(
reinterpret_cast<char*
>(&
_impl_) +
2630 offsetof(Impl_, initial_primal_weight_),
2631 reinterpret_cast<const char*
>(&from._impl_) +
2632 offsetof(Impl_, initial_primal_weight_),
2633 offsetof(Impl_, initial_step_size_scaling_) -
2634 offsetof(Impl_, initial_primal_weight_) +
2635 sizeof(Impl_::initial_step_size_scaling_));
2639PROTOBUF_NDEBUG_INLINE PrimalDualHybridGradientParams::Impl_::Impl_(
2640 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2641 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2643 random_projection_seeds_{visibility, arena},
2644 _random_projection_seeds_cached_byte_size_{0},
2646 major_iteration_frequency_{64},
2647 termination_check_frequency_{64},
2649 primal_weight_update_smoothing_{0.5},
2650 l_inf_ruiz_iterations_{5},
2652 sufficient_reduction_for_restart_{0.1},
2653 necessary_reduction_for_restart_{0.9},
2654 infinite_constraint_bound_threshold_{
std::numeric_limits<double>::infinity()},
2655 l2_norm_rescaling_{true},
2656 handle_some_primal_gradients_on_finite_bounds_as_residuals_{true},
2658 diagonal_qp_trust_region_solver_tolerance_{1e-08},
2659 initial_step_size_scaling_{1} {}
2661inline void PrimalDualHybridGradientParams::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2662 new (&
_impl_) Impl_(internal_visibility(), arena);
2663 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
2664 offsetof(Impl_, termination_criteria_),
2666 offsetof(Impl_, apply_feasibility_polishing_if_solver_is_interrupted_) -
2667 offsetof(Impl_, termination_criteria_) +
2668 sizeof(Impl_::apply_feasibility_polishing_if_solver_is_interrupted_));
2674inline void PrimalDualHybridGradientParams::SharedDtor(
MessageLite& self) {
2676 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2677 this_.CheckHasBitConsistency();
2679 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2680 ABSL_DCHECK(this_.GetArena() ==
nullptr);
2681 delete this_._impl_.termination_criteria_;
2682 delete this_._impl_.presolve_options_;
2683 delete this_._impl_.adaptive_linesearch_parameters_;
2684 delete this_._impl_.malitsky_pock_parameters_;
2685 this_._impl_.~Impl_();
2688inline void* PROTOBUF_NONNULL PrimalDualHybridGradientParams::PlacementNew_(
2689 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
2690 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2693constexpr auto PrimalDualHybridGradientParams::InternalNewImpl_() {
2694 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
2697 InternalGetArenaOffset(
2698 ::
google::protobuf::Message::internal_visibility()),
2700 if (arena_bits.has_value()) {
2701 return ::google::protobuf::internal::MessageCreator::CopyInit(
2702 sizeof(PrimalDualHybridGradientParams), alignof(PrimalDualHybridGradientParams), *arena_bits);
2704 return ::google::protobuf::internal::MessageCreator(&PrimalDualHybridGradientParams::PlacementNew_,
2705 sizeof(PrimalDualHybridGradientParams),
2706 alignof(PrimalDualHybridGradientParams));
2710 return ::google::protobuf::internal::ClassDataFull{
2711 ::google::protobuf::internal::ClassData{
2716 &PrimalDualHybridGradientParams::MergeImpl,
2717 ::google::protobuf::Message::GetNewImpl<PrimalDualHybridGradientParams>(),
2718#if defined(PROTOBUF_CUSTOM_VTABLE)
2719 &PrimalDualHybridGradientParams::SharedDtor,
2726 &PrimalDualHybridGradientParams::kDescriptorMethods,
2732PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2736PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2737PrimalDualHybridGradientParams::GetClassData()
const {
2742PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2743const ::_pbi::TcParseTable<5, 29, 7, 0, 7>
2744PrimalDualHybridGradientParams::_table_ = {
2749 offsetof(
decltype(_table_), field_lookup_table),
2751 offsetof(
decltype(_table_), field_entries),
2754 offsetof(
decltype(_table_), aux_entries),
2757 ::_pbi::TcParser::GenericFallback,
2758 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2759 ::_pbi::TcParser::GetTable<::operations_research::pdlp::PrimalDualHybridGradientParams>(),
2762 {::_pbi::TcParser::MiniParse, {}},
2764 {::_pbi::TcParser::FastMtS1,
2784 {::_pbi::TcParser::FastEr0S1,
2788 {::_pbi::TcParser::FastF64S1,
2792 {::_pbi::TcParser::FastF64S1,
2804 {::_pbi::TcParser::FastF64S1,
2808 {::_pbi::TcParser::FastEr0S1,
2811 {::_pbi::TcParser::MiniParse, {}},
2812 {::_pbi::TcParser::MiniParse, {}},
2813 {::_pbi::TcParser::MiniParse, {}},
2815 {::_pbi::TcParser::FastMtS2,
2819 {::_pbi::TcParser::FastF64S2,
2823 {::_pbi::TcParser::FastMtS2,
2827 {::_pbi::TcParser::FastMtS2,
2830 {::_pbi::TcParser::MiniParse, {}},
2831 {::_pbi::TcParser::MiniParse, {}},
2833 {::_pbi::TcParser::FastF64S2,
2837 {::_pbi::TcParser::FastV8S2,
2841 {::_pbi::TcParser::FastF64S2,
2845 {::_pbi::TcParser::FastF64S2,
2849 {::_pbi::TcParser::FastV32S2,
2853 {::_pbi::TcParser::FastV32S2,
2857 {::_pbi::TcParser::FastV32P2,
2861 {::_pbi::TcParser::FastV8S2,
2865 {::_pbi::TcParser::FastV8S2,
2869 {::_pbi::TcParser::FastF64S2,
2878 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.termination_criteria_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2898 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.sufficient_reduction_for_restart_), _Internal::kHasBitsOffset + 21, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2902 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.presolve_options_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2904 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.necessary_reduction_for_restart_), _Internal::kHasBitsOffset + 22, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2906 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.adaptive_linesearch_parameters_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2908 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.malitsky_pock_parameters_), _Internal::kHasBitsOffset + 4, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2910 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.infinite_constraint_bound_threshold_), _Internal::kHasBitsOffset + 23, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2912 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.use_diagonal_qp_trust_region_solver_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2914 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.diagonal_qp_trust_region_solver_tolerance_), _Internal::kHasBitsOffset + 27, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2924 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_), _Internal::kHasBitsOffset + 25, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2932 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.apply_feasibility_polishing_after_limits_reached_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2934 {PROTOBUF_FIELD_OFFSET(
PrimalDualHybridGradientParams,
_impl_.apply_feasibility_polishing_if_solver_is_interrupted_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2937 {::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria>()},
2938 {::_pbi::TcParser::GetTable<::operations_research::pdlp::PrimalDualHybridGradientParams_PresolveOptions>()},
2939 {::_pbi::TcParser::GetTable<::operations_research::pdlp::AdaptiveLinesearchParams>()},
2940 {::_pbi::TcParser::GetTable<::operations_research::pdlp::MalitskyPockParams>()},
2950 ::google::protobuf::internal::TSanWrite(&
_impl_);
2951 ::uint32_t cached_has_bits = 0;
2953 (void) cached_has_bits;
2956 if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
2957 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
2958 _impl_.random_projection_seeds_.Clear();
2960 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2961 ABSL_DCHECK(
_impl_.termination_criteria_ !=
nullptr);
2962 _impl_.termination_criteria_->Clear();
2964 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2965 ABSL_DCHECK(
_impl_.presolve_options_ !=
nullptr);
2966 _impl_.presolve_options_->Clear();
2968 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
2969 ABSL_DCHECK(
_impl_.adaptive_linesearch_parameters_ !=
nullptr);
2970 _impl_.adaptive_linesearch_parameters_->Clear();
2972 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
2973 ABSL_DCHECK(
_impl_.malitsky_pock_parameters_ !=
nullptr);
2974 _impl_.malitsky_pock_parameters_->Clear();
2977 if (BatchCheckHasBit(cached_has_bits, 0x000000e0U)) {
2978 ::memset(&
_impl_.initial_primal_weight_, 0,
static_cast<::
size_t>(
2979 reinterpret_cast<char*
>(&
_impl_.use_diagonal_qp_trust_region_solver_) -
2980 reinterpret_cast<char*
>(&
_impl_.initial_primal_weight_)) +
sizeof(
_impl_.use_diagonal_qp_trust_region_solver_));
2982 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2983 ::memset(&
_impl_.use_feasibility_polishing_, 0,
static_cast<::
size_t>(
2984 reinterpret_cast<char*
>(&
_impl_.apply_feasibility_polishing_if_solver_is_interrupted_) -
2985 reinterpret_cast<char*
>(&
_impl_.use_feasibility_polishing_)) +
sizeof(
_impl_.apply_feasibility_polishing_if_solver_is_interrupted_));
2987 _impl_.major_iteration_frequency_ = 64;
2989 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2990 _impl_.termination_check_frequency_ = 64;
2991 _impl_.restart_strategy_ = 3;
2992 _impl_.primal_weight_update_smoothing_ = 0.5;
2993 _impl_.l_inf_ruiz_iterations_ = 5;
2994 _impl_.linesearch_rule_ = 1;
2995 _impl_.sufficient_reduction_for_restart_ = 0.1;
2996 _impl_.necessary_reduction_for_restart_ = 0.9;
2997 _impl_.infinite_constraint_bound_threshold_ = std::numeric_limits<double>::infinity();
2999 if (BatchCheckHasBit(cached_has_bits, 0x1f000000U)) {
3000 _impl_.l2_norm_rescaling_ =
true;
3001 _impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_ =
true;
3002 _impl_.scheduler_type_ = 1;
3003 _impl_.diagonal_qp_trust_region_solver_tolerance_ = 1e-08;
3004 _impl_.initial_step_size_scaling_ = 1;
3006 _impl_._has_bits_.Clear();
3007 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
3010#if defined(PROTOBUF_CUSTOM_VTABLE)
3012 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
3013 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
3017 ::uint8_t* PROTOBUF_NONNULL target,
3018 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
3021 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
3022 this_.CheckHasBitConsistency();
3025 ::uint32_t cached_has_bits = 0;
3026 (void)cached_has_bits;
3028 cached_has_bits = this_._impl_._has_bits_[0];
3030 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3031 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3032 1, *this_._impl_.termination_criteria_, this_._impl_.termination_criteria_->GetCachedSize(), target,
3037 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3039 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
3040 stream, this_._internal_num_threads(), target);
3044 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3045 target = stream->EnsureSpace(target);
3046 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3047 3, this_._internal_record_iteration_stats(), target);
3051 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3053 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
3054 stream, this_._internal_major_iteration_frequency(), target);
3058 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3060 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
3061 stream, this_._internal_termination_check_frequency(), target);
3065 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3066 target = stream->EnsureSpace(target);
3067 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3068 6, this_._internal_restart_strategy(), target);
3072 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3073 target = stream->EnsureSpace(target);
3074 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3075 7, this_._internal_primal_weight_update_smoothing(), target);
3079 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3080 target = stream->EnsureSpace(target);
3081 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3082 8, this_._internal_initial_primal_weight(), target);
3086 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3088 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<9>(
3089 stream, this_._internal_l_inf_ruiz_iterations(), target);
3093 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3094 target = stream->EnsureSpace(target);
3095 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3096 10, this_._internal_l2_norm_rescaling(), target);
3100 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3101 target = stream->EnsureSpace(target);
3102 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3103 11, this_._internal_sufficient_reduction_for_restart(), target);
3107 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3108 target = stream->EnsureSpace(target);
3109 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3110 12, this_._internal_linesearch_rule(), target);
3114 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3115 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3116 16, *this_._impl_.presolve_options_, this_._impl_.presolve_options_->GetCachedSize(), target,
3121 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3122 target = stream->EnsureSpace(target);
3123 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3124 17, this_._internal_necessary_reduction_for_restart(), target);
3128 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3129 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3130 18, *this_._impl_.adaptive_linesearch_parameters_, this_._impl_.adaptive_linesearch_parameters_->GetCachedSize(), target,
3135 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3136 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3137 19, *this_._impl_.malitsky_pock_parameters_, this_._impl_.malitsky_pock_parameters_->GetCachedSize(), target,
3142 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3143 target = stream->EnsureSpace(target);
3144 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3145 22, this_._internal_infinite_constraint_bound_threshold(), target);
3149 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3150 target = stream->EnsureSpace(target);
3151 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3152 23, this_._internal_use_diagonal_qp_trust_region_solver(), target);
3156 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3157 target = stream->EnsureSpace(target);
3158 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3159 24, this_._internal_diagonal_qp_trust_region_solver_tolerance(), target);
3163 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
3164 target = stream->EnsureSpace(target);
3165 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3166 25, this_._internal_initial_step_size_scaling(), target);
3170 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3171 target = stream->EnsureSpace(target);
3172 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3173 26, this_._internal_verbosity_level(), target);
3177 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3178 target = stream->EnsureSpace(target);
3179 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3180 27, this_._internal_num_shards(), target);
3184 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
3186 int byte_size = this_._impl_._random_projection_seeds_cached_byte_size_.Get();
3187 if (byte_size > 0) {
3188 target = stream->WriteInt32Packed(
3189 28, this_._internal_random_projection_seeds(), byte_size, target);
3195 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3196 target = stream->EnsureSpace(target);
3197 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3198 29, this_._internal_handle_some_primal_gradients_on_finite_bounds_as_residuals(), target);
3202 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3203 target = stream->EnsureSpace(target);
3204 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3205 30, this_._internal_use_feasibility_polishing(), target);
3209 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3210 target = stream->EnsureSpace(target);
3211 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3212 31, this_._internal_log_interval_seconds(), target);
3216 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3217 target = stream->EnsureSpace(target);
3218 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3219 32, this_._internal_scheduler_type(), target);
3223 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3224 target = stream->EnsureSpace(target);
3225 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3226 33, this_._internal_apply_feasibility_polishing_after_limits_reached(), target);
3230 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3231 target = stream->EnsureSpace(target);
3232 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3233 34, this_._internal_apply_feasibility_polishing_if_solver_is_interrupted(), target);
3236 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
3238 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
3239 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
3245#if defined(PROTOBUF_CUSTOM_VTABLE)
3253 ::size_t total_size = 0;
3255 ::uint32_t cached_has_bits = 0;
3257 (void)cached_has_bits;
3259 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
3260 cached_has_bits = this_._impl_._has_bits_[0];
3261 total_size += ::absl::popcount(0x18c00400U & cached_has_bits) * 10;
3262 total_size += ::absl::popcount(0x00240020U & cached_has_bits) * 9;
3263 total_size += ::absl::popcount(0x02003180U & cached_has_bits) * 3;
3264 total_size += ::absl::popcount(0x01000040U & cached_has_bits) * 2;
3265 if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
3267 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
3269 ::_pbi::WireFormatLite::Int32SizeWithPackedTagSize(
3270 this_._internal_random_projection_seeds(), 2,
3271 this_._impl_._random_projection_seeds_cached_byte_size_);
3274 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3276 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.termination_criteria_);
3279 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3281 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.presolve_options_);
3284 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3286 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.adaptive_linesearch_parameters_);
3289 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3291 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.malitsky_pock_parameters_);
3294 if (BatchCheckHasBit(cached_has_bits, 0x0000ca00U)) {
3296 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3297 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3298 this_._internal_verbosity_level());
3301 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3302 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3303 this_._internal_num_shards());
3306 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3307 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
3308 this_._internal_num_threads());
3311 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3312 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
3313 this_._internal_major_iteration_frequency());
3316 if (BatchCheckHasBit(cached_has_bits, 0x001b0000U)) {
3318 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3319 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
3320 this_._internal_termination_check_frequency());
3323 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3325 ::_pbi::WireFormatLite::EnumSize(this_._internal_restart_strategy());
3328 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3329 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
3330 this_._internal_l_inf_ruiz_iterations());
3333 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3335 ::_pbi::WireFormatLite::EnumSize(this_._internal_linesearch_rule());
3340 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3342 ::_pbi::WireFormatLite::EnumSize(this_._internal_scheduler_type());
3345 return this_.MaybeComputeUnknownFieldsSize(total_size,
3346 &this_._impl_._cached_size_);
3349void PrimalDualHybridGradientParams::MergeImpl(::google::protobuf::MessageLite& to_msg,
3350 const ::google::protobuf::MessageLite& from_msg) {
3354 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
3355 from.CheckHasBitConsistency();
3359 ABSL_DCHECK_NE(&from, _this);
3360 ::uint32_t cached_has_bits = 0;
3361 (void)cached_has_bits;
3363 cached_has_bits = from._impl_._has_bits_[0];
3364 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
3365 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
3366 _this->_internal_mutable_random_projection_seeds()->MergeFrom(from._internal_random_projection_seeds());
3368 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3369 ABSL_DCHECK(from._impl_.termination_criteria_ !=
nullptr);
3370 if (_this->_impl_.termination_criteria_ ==
nullptr) {
3371 _this->_impl_.termination_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.termination_criteria_);
3373 _this->_impl_.termination_criteria_->MergeFrom(*from._impl_.termination_criteria_);
3376 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3377 ABSL_DCHECK(from._impl_.presolve_options_ !=
nullptr);
3378 if (_this->_impl_.presolve_options_ ==
nullptr) {
3379 _this->_impl_.presolve_options_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.presolve_options_);
3381 _this->_impl_.presolve_options_->MergeFrom(*from._impl_.presolve_options_);
3384 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3385 ABSL_DCHECK(from._impl_.adaptive_linesearch_parameters_ !=
nullptr);
3386 if (_this->_impl_.adaptive_linesearch_parameters_ ==
nullptr) {
3387 _this->_impl_.adaptive_linesearch_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.adaptive_linesearch_parameters_);
3389 _this->_impl_.adaptive_linesearch_parameters_->MergeFrom(*from._impl_.adaptive_linesearch_parameters_);
3392 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3393 ABSL_DCHECK(from._impl_.malitsky_pock_parameters_ !=
nullptr);
3394 if (_this->_impl_.malitsky_pock_parameters_ ==
nullptr) {
3395 _this->_impl_.malitsky_pock_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.malitsky_pock_parameters_);
3397 _this->_impl_.malitsky_pock_parameters_->MergeFrom(*from._impl_.malitsky_pock_parameters_);
3400 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3401 _this->_impl_.initial_primal_weight_ = from._impl_.initial_primal_weight_;
3403 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3404 _this->_impl_.record_iteration_stats_ = from._impl_.record_iteration_stats_;
3406 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3407 _this->_impl_.use_diagonal_qp_trust_region_solver_ = from._impl_.use_diagonal_qp_trust_region_solver_;
3410 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
3411 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3412 _this->_impl_.use_feasibility_polishing_ = from._impl_.use_feasibility_polishing_;
3414 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3415 _this->_impl_.verbosity_level_ = from._impl_.verbosity_level_;
3417 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3418 _this->_impl_.log_interval_seconds_ = from._impl_.log_interval_seconds_;
3420 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3421 _this->_impl_.num_shards_ = from._impl_.num_shards_;
3423 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3424 _this->_impl_.apply_feasibility_polishing_after_limits_reached_ = from._impl_.apply_feasibility_polishing_after_limits_reached_;
3426 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3427 _this->_impl_.apply_feasibility_polishing_if_solver_is_interrupted_ = from._impl_.apply_feasibility_polishing_if_solver_is_interrupted_;
3429 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3430 _this->_impl_.num_threads_ = from._impl_.num_threads_;
3432 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3433 _this->_impl_.major_iteration_frequency_ = from._impl_.major_iteration_frequency_;
3436 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
3437 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3438 _this->_impl_.termination_check_frequency_ = from._impl_.termination_check_frequency_;
3440 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3441 _this->_impl_.restart_strategy_ = from._impl_.restart_strategy_;
3443 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3444 _this->_impl_.primal_weight_update_smoothing_ = from._impl_.primal_weight_update_smoothing_;
3446 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3447 _this->_impl_.l_inf_ruiz_iterations_ = from._impl_.l_inf_ruiz_iterations_;
3449 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3450 _this->_impl_.linesearch_rule_ = from._impl_.linesearch_rule_;
3452 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3453 _this->_impl_.sufficient_reduction_for_restart_ = from._impl_.sufficient_reduction_for_restart_;
3455 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3456 _this->_impl_.necessary_reduction_for_restart_ = from._impl_.necessary_reduction_for_restart_;
3458 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3459 _this->_impl_.infinite_constraint_bound_threshold_ = from._impl_.infinite_constraint_bound_threshold_;
3462 if (BatchCheckHasBit(cached_has_bits, 0x1f000000U)) {
3463 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3464 _this->_impl_.l2_norm_rescaling_ = from._impl_.l2_norm_rescaling_;
3466 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3467 _this->_impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_ = from._impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_;
3469 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3470 _this->_impl_.scheduler_type_ = from._impl_.scheduler_type_;
3472 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3473 _this->_impl_.diagonal_qp_trust_region_solver_tolerance_ = from._impl_.diagonal_qp_trust_region_solver_tolerance_;
3475 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
3476 _this->_impl_.initial_step_size_scaling_ = from._impl_.initial_step_size_scaling_;
3479 _this->_impl_._has_bits_[0] |= cached_has_bits;
3480 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
3481 from._internal_metadata_);
3486 if (&from ==
this)
return;
3494 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3495 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
3496 _impl_.random_projection_seeds_.InternalSwap(&other->_impl_.random_projection_seeds_);
3497 ::google::protobuf::internal::memswap<
3501 reinterpret_cast<char*
>(&
_impl_.termination_criteria_),
3502 reinterpret_cast<char*
>(&other->_impl_.termination_criteria_));
3506 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
3516PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
3519 ::std::false_type{});
3520#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[]
static constexpr ::int32_t kHasBitsOffset
::google::protobuf::Metadata GetMetadata() const
~AdaptiveLinesearchParams() PROTOBUF_FINAL
friend class ::google::protobuf::MessageLite
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
static constexpr auto InternalGenerateClassData_()
::size_t ByteSizeLong() const final
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
void CopyFrom(const AdaptiveLinesearchParams &from)
AdaptiveLinesearchParams()
friend class ::google::protobuf::MessageLite
::google::protobuf::Metadata GetMetadata() const
void CopyFrom(const MalitskyPockParams &from)
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
::size_t ByteSizeLong() const final
static constexpr auto InternalGenerateClassData_()
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
~MalitskyPockParams() PROTOBUF_FINAL
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
friend class ::google::protobuf::MessageLite
::google::protobuf::Metadata GetMetadata() const
~PrimalDualHybridGradientParams_PresolveOptions() PROTOBUF_FINAL
void clear_glop_parameters()
void MergeFrom(const PrimalDualHybridGradientParams_PresolveOptions &from)
void CopyFrom(const PrimalDualHybridGradientParams_PresolveOptions &from)
static constexpr auto InternalGenerateClassData_()
PrimalDualHybridGradientParams_PresolveOptions()
::size_t ByteSizeLong() const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend class ::google::protobuf::MessageLite
void CopyFrom(const PrimalDualHybridGradientParams &from)
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
~PrimalDualHybridGradientParams() PROTOBUF_FINAL
friend void swap(PrimalDualHybridGradientParams &a, PrimalDualHybridGradientParams &b)
::size_t ByteSizeLong() const final
void MergeFrom(const PrimalDualHybridGradientParams &from)
static constexpr auto InternalGenerateClassData_()
PrimalDualHybridGradientParams()
::google::protobuf::Metadata GetMetadata() const
friend class ::google::protobuf::Arena
static constexpr ::int32_t kOneofCaseOffset
static constexpr ::int32_t kHasBitsOffset
static constexpr ::int32_t kHasBitsOffset
decltype(::std::declval< TerminationCriteria_DetailedOptimalityCriteria >()._impl_._has_bits_) HasBits
void MergeFrom(const TerminationCriteria_DetailedOptimalityCriteria &from)
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend class ::google::protobuf::MessageLite
friend void swap(TerminationCriteria_DetailedOptimalityCriteria &a, TerminationCriteria_DetailedOptimalityCriteria &b)
::size_t ByteSizeLong() const final
int GetCachedSize() const
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
static constexpr auto InternalGenerateClassData_()
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
~TerminationCriteria_DetailedOptimalityCriteria() PROTOBUF_FINAL
void CopyFrom(const TerminationCriteria_DetailedOptimalityCriteria &from)
TerminationCriteria_DetailedOptimalityCriteria()
::google::protobuf::Metadata GetMetadata() const
static constexpr ::int32_t kHasBitsOffset
decltype(::std::declval< TerminationCriteria_SimpleOptimalityCriteria >()._impl_._has_bits_) HasBits
friend class ::google::protobuf::MessageLite
static constexpr auto InternalGenerateClassData_()
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
friend void swap(TerminationCriteria_SimpleOptimalityCriteria &a, TerminationCriteria_SimpleOptimalityCriteria &b)
~TerminationCriteria_SimpleOptimalityCriteria() PROTOBUF_FINAL
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
void CopyFrom(const TerminationCriteria_SimpleOptimalityCriteria &from)
int GetCachedSize() const
::google::protobuf::Metadata GetMetadata() const
void MergeFrom(const TerminationCriteria_SimpleOptimalityCriteria &from)
::size_t ByteSizeLong() const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
TerminationCriteria_SimpleOptimalityCriteria()
friend class ::google::protobuf::MessageLite
~TerminationCriteria() PROTOBUF_FINAL
void set_allocated_detailed_optimality_criteria(::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria *PROTOBUF_NULLABLE value)
const ::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria & detailed_optimality_criteria() const
@ kSimpleOptimalityCriteria
@ OPTIMALITY_CRITERIA_NOT_SET
@ kDetailedOptimalityCriteria
friend void swap(TerminationCriteria &a, TerminationCriteria &b)
void set_allocated_simple_optimality_criteria(::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria *PROTOBUF_NULLABLE value)
void CopyFrom(const TerminationCriteria &from)
const ::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria & simple_optimality_criteria() const
void MergeFrom(const TerminationCriteria &from)
::google::protobuf::Metadata GetMetadata() const
static constexpr auto InternalGenerateClassData_()
void clear_optimality_criteria()
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
::size_t ByteSizeLong() const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
OptimalityCriteriaCase optimality_criteria_case() const
friend class ::google::protobuf::Arena
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fglop_2fparameters_2eproto
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TerminationCriteria_DetailedOptimalityCriteriaDefaultTypeInternal _TerminationCriteria_DetailedOptimalityCriteria_default_instance_
PROTOBUF_CONSTINIT const uint32_t SchedulerType_internal_data_[]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AdaptiveLinesearchParamsDefaultTypeInternal _AdaptiveLinesearchParams_default_instance_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull PrimalDualHybridGradientParams_PresolveOptions_class_data_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL PrimalDualHybridGradientParams_RestartStrategy_descriptor()
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull PrimalDualHybridGradientParams_class_data_
PrimalDualHybridGradientParams_LinesearchRule
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull TerminationCriteria_DetailedOptimalityCriteria_class_data_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull AdaptiveLinesearchParams_class_data_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull MalitskyPockParams_class_data_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrimalDualHybridGradientParams_PresolveOptionsDefaultTypeInternal _PrimalDualHybridGradientParams_PresolveOptions_default_instance_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SchedulerType_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL OptimalityNorm_descriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrimalDualHybridGradientParamsDefaultTypeInternal _PrimalDualHybridGradientParams_default_instance_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TerminationCriteriaDefaultTypeInternal _TerminationCriteria_default_instance_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL PrimalDualHybridGradientParams_LinesearchRule_descriptor()
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull TerminationCriteria_class_data_
PrimalDualHybridGradientParams_RestartStrategy
PROTOBUF_CONSTINIT const uint32_t PrimalDualHybridGradientParams_RestartStrategy_internal_data_[]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TerminationCriteria_SimpleOptimalityCriteriaDefaultTypeInternal _TerminationCriteria_SimpleOptimalityCriteria_default_instance_
PROTOBUF_CONSTINIT const uint32_t OptimalityNorm_internal_data_[]
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull TerminationCriteria_SimpleOptimalityCriteria_class_data_
PROTOBUF_CONSTINIT const uint32_t PrimalDualHybridGradientParams_LinesearchRule_internal_data_[]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MalitskyPockParamsDefaultTypeInternal _MalitskyPockParams_default_instance_
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fpdlp_2fsolvers_2eproto
static const ::_pb::EnumDescriptor *PROTOBUF_NONNULL file_level_enum_descriptors_ortools_2fpdlp_2fsolvers_2eproto[4]
::absl::once_flag descriptor_table_ortools_2fpdlp_2fsolvers_2eproto_once
static const ::_pbi::DescriptorTable *PROTOBUF_NONNULL const descriptor_table_ortools_2fpdlp_2fsolvers_2eproto_deps[1]
static constexprconst ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE file_level_service_descriptors_ortools_2fpdlp_2fsolvers_2eproto
const ::uint32_t TableStruct_ortools_2fpdlp_2fsolvers_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold)
AdaptiveLinesearchParams _instance
PROTOBUF_CONSTEXPR AdaptiveLinesearchParamsDefaultTypeInternal()
~AdaptiveLinesearchParamsDefaultTypeInternal()
MalitskyPockParams _instance
~MalitskyPockParamsDefaultTypeInternal()
PROTOBUF_CONSTEXPR MalitskyPockParamsDefaultTypeInternal()
~PrimalDualHybridGradientParamsDefaultTypeInternal()
PROTOBUF_CONSTEXPR PrimalDualHybridGradientParamsDefaultTypeInternal()
PrimalDualHybridGradientParams _instance
~PrimalDualHybridGradientParams_PresolveOptionsDefaultTypeInternal()
PrimalDualHybridGradientParams_PresolveOptions _instance
PROTOBUF_CONSTEXPR PrimalDualHybridGradientParams_PresolveOptionsDefaultTypeInternal()
TerminationCriteria _instance
~TerminationCriteriaDefaultTypeInternal()
PROTOBUF_CONSTEXPR TerminationCriteriaDefaultTypeInternal()
~TerminationCriteria_DetailedOptimalityCriteriaDefaultTypeInternal()
PROTOBUF_CONSTEXPR TerminationCriteria_DetailedOptimalityCriteriaDefaultTypeInternal()
TerminationCriteria_DetailedOptimalityCriteria _instance
~TerminationCriteria_SimpleOptimalityCriteriaDefaultTypeInternal()
TerminationCriteria_SimpleOptimalityCriteria _instance
PROTOBUF_CONSTEXPR TerminationCriteria_SimpleOptimalityCriteriaDefaultTypeInternal()
::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria *PROTOBUF_NULLABLE simple_optimality_criteria_
::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria *PROTOBUF_NULLABLE detailed_optimality_criteria_