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 GlopParameters::Impl_::Impl_(
31 ::_pbi::ConstantInitialized) noexcept
33 use_dual_simplex_{
false},
36 refactorization_threshold_{1e-09},
37 recompute_reduced_costs_threshold_{1e-08},
38 recompute_edges_norm_threshold_{100},
39 primal_feasibility_tolerance_{1e-08},
40 dual_feasibility_tolerance_{1e-08},
41 ratio_test_zero_threshold_{1e-09},
42 harris_tolerance_ratio_{0.5},
43 small_pivot_threshold_{1e-06},
44 minimum_acceptable_pivot_{1e-06},
46 basis_refactorization_period_{64},
48 use_transposed_matrix_{
true},
49 provide_strong_optimal_guarantee_{
true},
51 dualizer_threshold_{1.5},
52 solution_feasibility_tolerance_{1e-06},
53 lu_factorization_pivot_threshold_{0.01},
54 max_time_in_seconds_{std::numeric_limits<double>::infinity()},
55 max_number_of_iterations_{::int64_t{-1}},
56 markowitz_singularity_threshold_{1e-15},
57 markowitz_zlatev_parameter_{3},
59 preprocessor_zero_tolerance_{1e-09},
60 allow_simplex_algorithm_change_{
false},
61 perturb_costs_in_dual_simplex_{
false},
62 log_search_progress_{
false},
63 dual_price_prioritize_norm_{
false},
64 use_absl_random_{
false},
65 devex_weights_reset_period_{150},
66 use_preprocessing_{
true},
67 use_middle_product_form_update_{
true},
68 initialize_devex_with_column_norms_{
true},
69 exploit_singleton_column_in_initial_basis_{
true},
70 dual_small_pivot_threshold_{0.0001},
71 objective_lower_limit_{-std::numeric_limits<double>::infinity()},
72 objective_upper_limit_{std::numeric_limits<double>::infinity()},
73 degenerate_ministep_factor_{0.01},
74 max_deterministic_time_{std::numeric_limits<double>::infinity()},
77 drop_tolerance_{1e-14},
78 relative_cost_perturbation_{1e-05},
79 relative_max_cost_perturbation_{1e-07},
80 max_number_of_reoptimizations_{40},
81 initial_condition_number_threshold_{1e+50},
83 change_status_to_imprecise_{
true},
84 use_dedicated_dual_feasibility_algorithm_{
true},
85 dynamically_adjust_refactorization_period_{
true},
86 push_to_vertex_{
true},
87 crossover_bound_snapping_distance_{std::numeric_limits<double>::infinity()},
88 max_valid_magnitude_{1e+30},
89 drop_magnitude_{1e-30},
91 use_implied_free_preprocessor_{
true} {}
95#if defined(PROTOBUF_CUSTOM_VTABLE)
98 : ::google::protobuf::Message(),
100 _impl_(::_pbi::ConstantInitialized()) {
110PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
114static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
116static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
244static const ::_pbi::MigrationSchema
253 "\n\035ortools/glop/parameters.proto\022\030operati"
254 "ons_research.glop\"\360\030\n\016GlopParameters\022`\n\016"
255 "scaling_method\0309 \001(\01629.operations_resear"
256 "ch.glop.GlopParameters.ScalingAlgorithm:"
257 "\rEQUILIBRATION\022]\n\020feasibility_rule\030\001 \001(\016"
258 "24.operations_research.glop.GlopParamete"
259 "rs.PricingRule:\rSTEEPEST_EDGE\022^\n\021optimiz"
260 "ation_rule\030\002 \001(\01624.operations_research.g"
261 "lop.GlopParameters.PricingRule:\rSTEEPEST"
262 "_EDGE\022(\n\031refactorization_threshold\030\006 \001(\001"
263 ":\0051e-09\0220\n!recompute_reduced_costs_thres"
264 "hold\030\010 \001(\001:\0051e-08\022+\n\036recompute_edges_nor"
265 "m_threshold\030\t \001(\001:\003100\022+\n\034primal_feasibi"
266 "lity_tolerance\030\n \001(\001:\0051e-08\022)\n\032dual_feas"
267 "ibility_tolerance\030\013 \001(\001:\0051e-08\022(\n\031ratio_"
268 "test_zero_threshold\030\014 \001(\001:\0051e-09\022#\n\026harr"
269 "is_tolerance_ratio\030\r \001(\001:\0030.5\022$\n\025small_p"
270 "ivot_threshold\030\016 \001(\001:\0051e-06\022\'\n\030minimum_a"
271 "cceptable_pivot\030\017 \001(\001:\0051e-06\022\035\n\016drop_tol"
272 "erance\0304 \001(\001:\0051e-14\022\031\n\013use_scaling\030\020 \001(\010"
273 ":\004true\022m\n\014cost_scaling\030< \001(\0162=.operation"
274 "s_research.glop.GlopParameters.CostScali"
275 "ngAlgorithm:\030CONTAIN_ONE_COST_SCALING\022a\n"
276 "\rinitial_basis\030\021 \001(\0162>.operations_resear"
277 "ch.glop.GlopParameters.InitialBasisHeuri"
278 "stic:\nTRIANGULAR\022#\n\025use_transposed_matri"
279 "x\030\022 \001(\010:\004true\022(\n\034basis_refactorization_p"
280 "eriod\030\023 \001(\005:\00264\0227\n)dynamically_adjust_re"
281 "factorization_period\030\? \001(\010:\004true\022f\n\022solv"
282 "e_dual_problem\030\024 \001(\01627.operations_resear"
283 "ch.glop.GlopParameters.SolverBehavior:\021L"
284 "ET_SOLVER_DECIDE\022\037\n\022dualizer_threshold\030\025"
285 " \001(\001:\0031.5\022-\n\036solution_feasibility_tolera"
286 "nce\030\026 \001(\001:\0051e-06\022.\n provide_strong_optim"
287 "al_guarantee\030\030 \001(\010:\004true\022(\n\032change_statu"
288 "s_to_imprecise\030: \001(\010:\004true\022)\n\035max_number"
289 "_of_reoptimizations\0308 \001(\001:\00240\022.\n lu_fact"
290 "orization_pivot_threshold\030\031 \001(\001:\0040.01\022 \n"
291 "\023max_time_in_seconds\030\032 \001(\001:\003inf\022#\n\026max_d"
292 "eterministic_time\030- \001(\001:\003inf\022$\n\030max_numb"
293 "er_of_iterations\030\033 \001(\003:\002-1\022%\n\032markowitz_"
294 "zlatev_parameter\030\035 \001(\005:\0013\022.\n\037markowitz_s"
295 "ingularity_threshold\030\036 \001(\001:\0051e-15\022\037\n\020use"
296 "_dual_simplex\030\037 \001(\010:\005false\022-\n\036allow_simp"
297 "lex_algorithm_change\030 \001(\010:\005false\022\'\n\032dev"
298 "ex_weights_reset_period\030! \001(\005:\003150\022\037\n\021us"
299 "e_preprocessing\030\" \001(\010:\004true\022,\n\036use_middl"
300 "e_product_form_update\030# \001(\010:\004true\0220\n\"ini"
301 "tialize_devex_with_column_norms\030$ \001(\010:\004t"
302 "rue\0227\n)exploit_singleton_column_in_initi"
303 "al_basis\030% \001(\010:\004true\022*\n\032dual_small_pivot"
304 "_threshold\030& \001(\001:\0060.0001\022*\n\033preprocessor"
305 "_zero_tolerance\030\' \001(\001:\0051e-09\022#\n\025objectiv"
306 "e_lower_limit\030( \001(\001:\004-inf\022\"\n\025objective_u"
307 "pper_limit\030) \001(\001:\003inf\022(\n\032degenerate_mini"
308 "step_factor\030* \001(\001:\0040.01\022\026\n\013random_seed\030+"
309 " \001(\005:\0011\022\036\n\017use_absl_random\030H \001(\010:\005false\022"
310 "\032\n\017num_omp_threads\030, \001(\005:\0011\022,\n\035perturb_c"
311 "osts_in_dual_simplex\0305 \001(\010:\005false\0226\n(use"
312 "_dedicated_dual_feasibility_algorithm\030> "
313 "\001(\010:\004true\022)\n\032relative_cost_perturbation\030"
314 "6 \001(\001:\0051e-05\022-\n\036relative_max_cost_pertur"
315 "bation\0307 \001(\001:\0051e-07\0221\n\"initial_condition"
316 "_number_threshold\030; \001(\001:\0051e+50\022\"\n\023log_se"
317 "arch_progress\030= \001(\010:\005false\022\033\n\rlog_to_std"
318 "out\030B \001(\010:\004true\022.\n!crossover_bound_snapp"
319 "ing_distance\030@ \001(\001:\003inf\022\034\n\016push_to_verte"
320 "x\030A \001(\010:\004true\022+\n\035use_implied_free_prepro"
321 "cessor\030C \001(\010:\004true\022\"\n\023max_valid_magnitud"
322 "e\030F \001(\001:\0051e+30\022\035\n\016drop_magnitude\030G \001(\001:\005"
323 "1e-30\022)\n\032dual_price_prioritize_norm\030E \001("
324 "\010:\005false\"F\n\020ScalingAlgorithm\022\013\n\007DEFAULT\020"
325 "\000\022\021\n\rEQUILIBRATION\020\001\022\022\n\016LINEAR_PROGRAM\020\002"
326 "\"D\n\016SolverBehavior\022\r\n\tALWAYS_DO\020\000\022\014\n\010NEV"
327 "ER_DO\020\001\022\025\n\021LET_SOLVER_DECIDE\020\002\"8\n\013Pricin"
328 "gRule\022\013\n\007DANTZIG\020\000\022\021\n\rSTEEPEST_EDGE\020\001\022\t\n"
329 "\005DEVEX\020\002\"G\n\025InitialBasisHeuristic\022\010\n\004NON"
330 "E\020\000\022\t\n\005BIXBY\020\001\022\016\n\nTRIANGULAR\020\002\022\t\n\005MAROS\020"
331 "\003\"y\n\024CostScalingAlgorithm\022\023\n\017NO_COST_SCA"
332 "LING\020\000\022\034\n\030CONTAIN_ONE_COST_SCALING\020\001\022\025\n\021"
333 "MEAN_COST_SCALING\020\002\022\027\n\023MEDIAN_COST_SCALI"
334 "NG\020\003B1\n\027com.google.ortools.glopP\001\252\002\023Goog"
342 descriptor_table_protodef_ortools_2fglop_2fparameters_2eproto,
343 "ortools/glop/parameters.proto",
388class GlopParameters::_Internal {
391 decltype(::std::declval<GlopParameters>()._impl_._has_bits_);
397#if defined(PROTOBUF_CUSTOM_VTABLE)
400 : ::google::protobuf::Message(arena) {
406 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
const GlopParameters& from)
407#if defined(PROTOBUF_CUSTOM_VTABLE)
410 : ::google::protobuf::Message(arena),
413 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
414 from._internal_metadata_);
416PROTOBUF_NDEBUG_INLINE GlopParameters::Impl_::Impl_(
417 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
418 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
422 refactorization_threshold_{1e-09},
423 recompute_reduced_costs_threshold_{1e-08},
424 recompute_edges_norm_threshold_{100},
425 primal_feasibility_tolerance_{1e-08},
426 dual_feasibility_tolerance_{1e-08},
427 ratio_test_zero_threshold_{1e-09},
428 harris_tolerance_ratio_{0.5},
429 small_pivot_threshold_{1e-06},
430 minimum_acceptable_pivot_{1e-06},
432 basis_refactorization_period_{64},
434 use_transposed_matrix_{true},
435 provide_strong_optimal_guarantee_{true},
437 dualizer_threshold_{1.5},
438 solution_feasibility_tolerance_{1e-06},
439 lu_factorization_pivot_threshold_{0.01},
440 max_time_in_seconds_{
std::numeric_limits<double>::infinity()},
441 max_number_of_iterations_{::int64_t{-1}},
442 markowitz_singularity_threshold_{1e-15},
443 markowitz_zlatev_parameter_{3},
445 preprocessor_zero_tolerance_{1e-09},
446 devex_weights_reset_period_{150},
447 use_preprocessing_{true},
448 use_middle_product_form_update_{true},
449 initialize_devex_with_column_norms_{true},
450 exploit_singleton_column_in_initial_basis_{true},
451 dual_small_pivot_threshold_{0.0001},
452 objective_lower_limit_{-
std::numeric_limits<double>::infinity()},
453 objective_upper_limit_{
std::numeric_limits<double>::infinity()},
454 degenerate_ministep_factor_{0.01},
455 max_deterministic_time_{
std::numeric_limits<double>::infinity()},
458 drop_tolerance_{1e-14},
459 relative_cost_perturbation_{1e-05},
460 relative_max_cost_perturbation_{1e-07},
461 max_number_of_reoptimizations_{40},
462 initial_condition_number_threshold_{1e+50},
464 change_status_to_imprecise_{true},
465 use_dedicated_dual_feasibility_algorithm_{true},
466 dynamically_adjust_refactorization_period_{true},
467 push_to_vertex_{true},
468 crossover_bound_snapping_distance_{
std::numeric_limits<double>::infinity()},
469 max_valid_magnitude_{1e+30},
470 drop_magnitude_{1e-30},
471 log_to_stdout_{true},
472 use_implied_free_preprocessor_{true} {}
474inline void GlopParameters::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
475 new (&
_impl_) Impl_(internal_visibility(), arena);
476 _impl_.use_dual_simplex_ = {};
477 ::memset(
reinterpret_cast<char*
>(&
_impl_) +
478 offsetof(Impl_, allow_simplex_algorithm_change_),
480 offsetof(Impl_, use_absl_random_) -
481 offsetof(Impl_, allow_simplex_algorithm_change_) +
482 sizeof(Impl_::use_absl_random_));
488inline void GlopParameters::SharedDtor(
MessageLite& self) {
490 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
491 this_.CheckHasBitConsistency();
493 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
494 ABSL_DCHECK(this_.GetArena() ==
nullptr);
498inline void* PROTOBUF_NONNULL GlopParameters::PlacementNew_(
499 const void* PROTOBUF_NONNULL,
void* PROTOBUF_NONNULL mem,
500 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
503constexpr auto GlopParameters::InternalNewImpl_() {
504 return ::google::protobuf::internal::MessageCreator::CopyInit(
sizeof(
GlopParameters),
508 return ::google::protobuf::internal::ClassDataFull{
509 ::google::protobuf::internal::ClassData{
514 &GlopParameters::MergeImpl,
515 ::google::protobuf::Message::GetNewImpl<GlopParameters>(),
516#if defined(PROTOBUF_CUSTOM_VTABLE)
517 &GlopParameters::SharedDtor,
524 &GlopParameters::kDescriptorMethods,
530PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
534PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
535GlopParameters::GetClassData()
const {
540PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
541const ::_pbi::TcParseTable<5, 59, 6, 0, 11>
542GlopParameters::_table_ = {
547 offsetof(
decltype(_table_), field_lookup_table),
549 offsetof(
decltype(_table_), field_entries),
552 offsetof(
decltype(_table_), aux_entries),
555 ::_pbi::TcParser::GenericFallback,
556 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
557 ::_pbi::TcParser::GetTable<::operations_research::glop::GlopParameters>(),
560 {::_pbi::TcParser::MiniParse, {}},
562 {::_pbi::TcParser::FastEr0S1,
566 {::_pbi::TcParser::FastEr0S1,
569 {::_pbi::TcParser::MiniParse, {}},
570 {::_pbi::TcParser::MiniParse, {}},
571 {::_pbi::TcParser::MiniParse, {}},
573 {::_pbi::TcParser::FastF64S1,
576 {::_pbi::TcParser::MiniParse, {}},
578 {::_pbi::TcParser::FastF64S1,
582 {::_pbi::TcParser::FastF64S1,
586 {::_pbi::TcParser::FastF64S1,
590 {::_pbi::TcParser::FastF64S1,
594 {::_pbi::TcParser::FastF64S1,
598 {::_pbi::TcParser::FastF64S1,
602 {::_pbi::TcParser::FastF64S1,
606 {::_pbi::TcParser::FastF64S1,
610 {::_pbi::TcParser::FastV8S2,
614 {::_pbi::TcParser::FastEr0S2,
618 {::_pbi::TcParser::FastV8S2,
622 {::_pbi::TcParser::FastV32S2,
626 {::_pbi::TcParser::FastEr0S2,
630 {::_pbi::TcParser::FastF64S2,
634 {::_pbi::TcParser::FastF64S2,
638 {::_pbi::TcParser::FastF64S2,
642 {::_pbi::TcParser::FastV8S2,
646 {::_pbi::TcParser::FastF64S2,
650 {::_pbi::TcParser::FastF64S2,
654 {::_pbi::TcParser::FastV64S2,
658 {::_pbi::TcParser::FastV32S2,
662 {::_pbi::TcParser::FastV32S2,
666 {::_pbi::TcParser::FastF64S2,
670 {::_pbi::TcParser::FastV8S2,
812 ::google::protobuf::internal::TSanWrite(&
_impl_);
813 ::uint32_t cached_has_bits = 0;
815 (void) cached_has_bits;
817 cached_has_bits =
_impl_._has_bits_[0];
818 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
819 _impl_.use_dual_simplex_ =
false;
820 _impl_.feasibility_rule_ = 1;
821 _impl_.optimization_rule_ = 1;
822 _impl_.refactorization_threshold_ = 1e-09;
823 _impl_.recompute_reduced_costs_threshold_ = 1e-08;
824 _impl_.recompute_edges_norm_threshold_ = 100;
825 _impl_.primal_feasibility_tolerance_ = 1e-08;
826 _impl_.dual_feasibility_tolerance_ = 1e-08;
828 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
829 _impl_.ratio_test_zero_threshold_ = 1e-09;
830 _impl_.harris_tolerance_ratio_ = 0.5;
831 _impl_.small_pivot_threshold_ = 1e-06;
832 _impl_.minimum_acceptable_pivot_ = 1e-06;
833 _impl_.initial_basis_ = 2;
834 _impl_.basis_refactorization_period_ = 64;
835 _impl_.use_scaling_ =
true;
836 _impl_.use_transposed_matrix_ =
true;
838 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
839 _impl_.provide_strong_optimal_guarantee_ =
true;
840 _impl_.solve_dual_problem_ = 2;
841 _impl_.dualizer_threshold_ = 1.5;
842 _impl_.solution_feasibility_tolerance_ = 1e-06;
843 _impl_.lu_factorization_pivot_threshold_ = 0.01;
844 _impl_.max_time_in_seconds_ = std::numeric_limits<double>::infinity();
845 _impl_.max_number_of_iterations_ = ::int64_t{-1};
846 _impl_.markowitz_singularity_threshold_ = 1e-15;
848 if (BatchCheckHasBit(cached_has_bits, 0x07000000U)) {
849 _impl_.markowitz_zlatev_parameter_ = 3;
850 _impl_.num_omp_threads_ = 1;
851 _impl_.preprocessor_zero_tolerance_ = 1e-09;
853 if (BatchCheckHasBit(cached_has_bits, 0xf8000000U)) {
854 ::memset(&
_impl_.allow_simplex_algorithm_change_, 0,
static_cast<::
size_t>(
855 reinterpret_cast<char*
>(&
_impl_.use_absl_random_) -
856 reinterpret_cast<char*
>(&
_impl_.allow_simplex_algorithm_change_)) +
sizeof(
_impl_.use_absl_random_));
858 cached_has_bits =
_impl_._has_bits_[1];
859 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
860 _impl_.devex_weights_reset_period_ = 150;
861 _impl_.use_preprocessing_ =
true;
862 _impl_.use_middle_product_form_update_ =
true;
863 _impl_.initialize_devex_with_column_norms_ =
true;
864 _impl_.exploit_singleton_column_in_initial_basis_ =
true;
865 _impl_.dual_small_pivot_threshold_ = 0.0001;
866 _impl_.objective_lower_limit_ = -std::numeric_limits<double>::infinity();
867 _impl_.objective_upper_limit_ = std::numeric_limits<double>::infinity();
869 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
870 _impl_.degenerate_ministep_factor_ = 0.01;
871 _impl_.max_deterministic_time_ = std::numeric_limits<double>::infinity();
873 _impl_.scaling_method_ = 1;
874 _impl_.drop_tolerance_ = 1e-14;
875 _impl_.relative_cost_perturbation_ = 1e-05;
876 _impl_.relative_max_cost_perturbation_ = 1e-07;
877 _impl_.max_number_of_reoptimizations_ = 40;
879 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
880 _impl_.initial_condition_number_threshold_ = 1e+50;
882 _impl_.change_status_to_imprecise_ =
true;
883 _impl_.use_dedicated_dual_feasibility_algorithm_ =
true;
884 _impl_.dynamically_adjust_refactorization_period_ =
true;
885 _impl_.push_to_vertex_ =
true;
886 _impl_.crossover_bound_snapping_distance_ = std::numeric_limits<double>::infinity();
887 _impl_.max_valid_magnitude_ = 1e+30;
889 if (BatchCheckHasBit(cached_has_bits, 0x07000000U)) {
890 _impl_.drop_magnitude_ = 1e-30;
891 _impl_.log_to_stdout_ =
true;
892 _impl_.use_implied_free_preprocessor_ =
true;
894 _impl_._has_bits_.Clear();
895 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
898#if defined(PROTOBUF_CUSTOM_VTABLE)
900 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
901 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
905 ::uint8_t* PROTOBUF_NONNULL target,
906 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream)
const {
909 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
910 this_.CheckHasBitConsistency();
913 ::uint32_t cached_has_bits = 0;
914 (void)cached_has_bits;
916 cached_has_bits = this_.
_impl_._has_bits_[0];
918 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
919 target = stream->EnsureSpace(target);
920 target = ::_pbi::WireFormatLite::WriteEnumToArray(
921 1, this_._internal_feasibility_rule(), target);
925 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
926 target = stream->EnsureSpace(target);
927 target = ::_pbi::WireFormatLite::WriteEnumToArray(
928 2, this_._internal_optimization_rule(), target);
932 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
933 target = stream->EnsureSpace(target);
934 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
935 6, this_._internal_refactorization_threshold(), target);
939 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
940 target = stream->EnsureSpace(target);
941 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
942 8, this_._internal_recompute_reduced_costs_threshold(), target);
946 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
947 target = stream->EnsureSpace(target);
948 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
949 9, this_._internal_recompute_edges_norm_threshold(), target);
953 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
954 target = stream->EnsureSpace(target);
955 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
956 10, this_._internal_primal_feasibility_tolerance(), target);
960 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
961 target = stream->EnsureSpace(target);
962 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
963 11, this_._internal_dual_feasibility_tolerance(), target);
967 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
968 target = stream->EnsureSpace(target);
969 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
970 12, this_._internal_ratio_test_zero_threshold(), target);
974 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
975 target = stream->EnsureSpace(target);
976 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
977 13, this_._internal_harris_tolerance_ratio(), target);
981 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
982 target = stream->EnsureSpace(target);
983 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
984 14, this_._internal_small_pivot_threshold(), target);
988 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
989 target = stream->EnsureSpace(target);
990 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
991 15, this_._internal_minimum_acceptable_pivot(), target);
995 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
996 target = stream->EnsureSpace(target);
997 target = ::_pbi::WireFormatLite::WriteBoolToArray(
998 16, this_._internal_use_scaling(), target);
1002 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1003 target = stream->EnsureSpace(target);
1004 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1005 17, this_._internal_initial_basis(), target);
1009 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1010 target = stream->EnsureSpace(target);
1011 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1012 18, this_._internal_use_transposed_matrix(), target);
1016 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1017 target = stream->EnsureSpace(target);
1018 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1019 19, this_._internal_basis_refactorization_period(), target);
1023 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1024 target = stream->EnsureSpace(target);
1025 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1026 20, this_._internal_solve_dual_problem(), target);
1030 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1031 target = stream->EnsureSpace(target);
1032 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1033 21, this_._internal_dualizer_threshold(), target);
1037 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1038 target = stream->EnsureSpace(target);
1039 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1040 22, this_._internal_solution_feasibility_tolerance(), target);
1044 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1045 target = stream->EnsureSpace(target);
1046 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1047 24, this_._internal_provide_strong_optimal_guarantee(), target);
1051 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1052 target = stream->EnsureSpace(target);
1053 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1054 25, this_._internal_lu_factorization_pivot_threshold(), target);
1058 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1059 target = stream->EnsureSpace(target);
1060 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1061 26, this_._internal_max_time_in_seconds(), target);
1065 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1066 target = stream->EnsureSpace(target);
1067 target = ::_pbi::WireFormatLite::WriteInt64ToArray(
1068 27, this_._internal_max_number_of_iterations(), target);
1072 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1073 target = stream->EnsureSpace(target);
1074 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1075 29, this_._internal_markowitz_zlatev_parameter(), target);
1079 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1080 target = stream->EnsureSpace(target);
1081 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1082 30, this_._internal_markowitz_singularity_threshold(), target);
1086 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1087 target = stream->EnsureSpace(target);
1088 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1089 31, this_._internal_use_dual_simplex(), target);
1093 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
1094 target = stream->EnsureSpace(target);
1095 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1096 32, this_._internal_allow_simplex_algorithm_change(), target);
1099 cached_has_bits = this_.
_impl_._has_bits_[1];
1101 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1102 target = stream->EnsureSpace(target);
1103 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1104 33, this_._internal_devex_weights_reset_period(), target);
1108 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1109 target = stream->EnsureSpace(target);
1110 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1111 34, this_._internal_use_preprocessing(), target);
1115 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1116 target = stream->EnsureSpace(target);
1117 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1118 35, this_._internal_use_middle_product_form_update(), target);
1122 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1123 target = stream->EnsureSpace(target);
1124 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1125 36, this_._internal_initialize_devex_with_column_norms(), target);
1129 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1130 target = stream->EnsureSpace(target);
1131 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1132 37, this_._internal_exploit_singleton_column_in_initial_basis(), target);
1136 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1137 target = stream->EnsureSpace(target);
1138 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1139 38, this_._internal_dual_small_pivot_threshold(), target);
1142 cached_has_bits = this_.
_impl_._has_bits_[0];
1144 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1145 target = stream->EnsureSpace(target);
1146 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1147 39, this_._internal_preprocessor_zero_tolerance(), target);
1150 cached_has_bits = this_.
_impl_._has_bits_[1];
1152 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1153 target = stream->EnsureSpace(target);
1154 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1155 40, this_._internal_objective_lower_limit(), target);
1159 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1160 target = stream->EnsureSpace(target);
1161 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1162 41, this_._internal_objective_upper_limit(), target);
1166 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
1167 target = stream->EnsureSpace(target);
1168 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1169 42, this_._internal_degenerate_ministep_factor(), target);
1173 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1174 target = stream->EnsureSpace(target);
1175 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1176 43, this_._internal_random_seed(), target);
1179 cached_has_bits = this_.
_impl_._has_bits_[0];
1181 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1182 target = stream->EnsureSpace(target);
1183 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
1184 44, this_._internal_num_omp_threads(), target);
1187 cached_has_bits = this_.
_impl_._has_bits_[1];
1189 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1190 target = stream->EnsureSpace(target);
1191 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1192 45, this_._internal_max_deterministic_time(), target);
1196 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1197 target = stream->EnsureSpace(target);
1198 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1199 52, this_._internal_drop_tolerance(), target);
1202 cached_has_bits = this_.
_impl_._has_bits_[0];
1204 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
1205 target = stream->EnsureSpace(target);
1206 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1207 53, this_._internal_perturb_costs_in_dual_simplex(), target);
1210 cached_has_bits = this_.
_impl_._has_bits_[1];
1212 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1213 target = stream->EnsureSpace(target);
1214 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1215 54, this_._internal_relative_cost_perturbation(), target);
1219 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
1220 target = stream->EnsureSpace(target);
1221 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1222 55, this_._internal_relative_max_cost_perturbation(), target);
1226 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1227 target = stream->EnsureSpace(target);
1228 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1229 56, this_._internal_max_number_of_reoptimizations(), target);
1233 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1234 target = stream->EnsureSpace(target);
1235 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1236 57, this_._internal_scaling_method(), target);
1240 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1241 target = stream->EnsureSpace(target);
1242 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1243 58, this_._internal_change_status_to_imprecise(), target);
1247 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1248 target = stream->EnsureSpace(target);
1249 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1250 59, this_._internal_initial_condition_number_threshold(), target);
1254 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1255 target = stream->EnsureSpace(target);
1256 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1257 60, this_._internal_cost_scaling(), target);
1260 cached_has_bits = this_.
_impl_._has_bits_[0];
1262 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
1263 target = stream->EnsureSpace(target);
1264 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1265 61, this_._internal_log_search_progress(), target);
1268 cached_has_bits = this_.
_impl_._has_bits_[1];
1270 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1271 target = stream->EnsureSpace(target);
1272 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1273 62, this_._internal_use_dedicated_dual_feasibility_algorithm(), target);
1277 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1278 target = stream->EnsureSpace(target);
1279 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1280 63, this_._internal_dynamically_adjust_refactorization_period(), target);
1284 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1285 target = stream->EnsureSpace(target);
1286 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1287 64, this_._internal_crossover_bound_snapping_distance(), target);
1291 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1292 target = stream->EnsureSpace(target);
1293 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1294 65, this_._internal_push_to_vertex(), target);
1298 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1299 target = stream->EnsureSpace(target);
1300 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1301 66, this_._internal_log_to_stdout(), target);
1305 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1306 target = stream->EnsureSpace(target);
1307 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1308 67, this_._internal_use_implied_free_preprocessor(), target);
1311 cached_has_bits = this_.
_impl_._has_bits_[0];
1313 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1314 target = stream->EnsureSpace(target);
1315 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1316 69, this_._internal_dual_price_prioritize_norm(), target);
1319 cached_has_bits = this_.
_impl_._has_bits_[1];
1321 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1322 target = stream->EnsureSpace(target);
1323 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1324 70, this_._internal_max_valid_magnitude(), target);
1328 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1329 target = stream->EnsureSpace(target);
1330 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1331 71, this_._internal_drop_magnitude(), target);
1334 cached_has_bits = this_.
_impl_._has_bits_[0];
1336 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
1337 target = stream->EnsureSpace(target);
1338 target = ::_pbi::WireFormatLite::WriteBoolToArray(
1339 72, this_._internal_use_absl_random(), target);
1342 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1344 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1345 this_._internal_metadata_.
unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1351#if defined(PROTOBUF_CUSTOM_VTABLE)
1359 ::size_t total_size = 0;
1361 ::uint32_t cached_has_bits = 0;
1363 (void)cached_has_bits;
1365 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1366 cached_has_bits = this_.
_impl_._has_bits_[0];
1367 total_size += ::absl::popcount(0x04bc0000U & cached_has_bits) * 10;
1368 total_size += ::absl::popcount(0x00000ff8U & cached_has_bits) * 9;
1369 total_size += ::absl::popcount(0xf801c001U & cached_has_bits) * 3;
1370 if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
1372 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1374 ::_pbi::WireFormatLite::EnumSize(this_._internal_feasibility_rule());
1377 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1379 ::_pbi::WireFormatLite::EnumSize(this_._internal_optimization_rule());
1382 if (BatchCheckHasBit(cached_has_bits, 0x00003000U)) {
1384 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1386 ::_pbi::WireFormatLite::EnumSize(this_._internal_initial_basis());
1389 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1390 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1391 this_._internal_basis_refactorization_period());
1394 if (BatchCheckHasBit(cached_has_bits, 0x00420000U)) {
1396 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1398 ::_pbi::WireFormatLite::EnumSize(this_._internal_solve_dual_problem());
1401 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1402 total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
1403 this_._internal_max_number_of_iterations());
1406 if (BatchCheckHasBit(cached_has_bits, 0x03000000U)) {
1408 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1409 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1410 this_._internal_markowitz_zlatev_parameter());
1413 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1414 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1415 this_._internal_num_omp_threads());
1418 cached_has_bits = this_.
_impl_._has_bits_[1];
1419 total_size += ::absl::popcount(0x01c1f3e0U & cached_has_bits) * 10;
1420 total_size += ::absl::popcount(0x063c001eU & cached_has_bits) * 3;
1423 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1424 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1425 this_._internal_devex_weights_reset_period());
1428 if (BatchCheckHasBit(cached_has_bits, 0x00000c00U)) {
1430 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1431 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
1432 this_._internal_random_seed());
1435 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1437 ::_pbi::WireFormatLite::EnumSize(this_._internal_scaling_method());
1442 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1444 ::_pbi::WireFormatLite::EnumSize(this_._internal_cost_scaling());
1447 return this_.MaybeComputeUnknownFieldsSize(total_size,
1448 &this_.
_impl_._cached_size_);
1451void GlopParameters::MergeImpl(::google::protobuf::MessageLite& to_msg,
1452 const ::google::protobuf::MessageLite& from_msg) {
1456 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1457 from.CheckHasBitConsistency();
1460 ABSL_DCHECK_NE(&from, _this);
1461 ::uint32_t cached_has_bits = 0;
1462 (void)cached_has_bits;
1464 cached_has_bits = from.
_impl_._has_bits_[0];
1465 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1466 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1467 _this->_impl_.use_dual_simplex_ = from.
_impl_.use_dual_simplex_;
1469 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1470 _this->_impl_.feasibility_rule_ = from.
_impl_.feasibility_rule_;
1472 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1473 _this->_impl_.optimization_rule_ = from.
_impl_.optimization_rule_;
1475 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1476 _this->_impl_.refactorization_threshold_ = from.
_impl_.refactorization_threshold_;
1478 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1479 _this->_impl_.recompute_reduced_costs_threshold_ = from.
_impl_.recompute_reduced_costs_threshold_;
1481 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1482 _this->_impl_.recompute_edges_norm_threshold_ = from.
_impl_.recompute_edges_norm_threshold_;
1484 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1485 _this->_impl_.primal_feasibility_tolerance_ = from.
_impl_.primal_feasibility_tolerance_;
1487 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1488 _this->_impl_.dual_feasibility_tolerance_ = from.
_impl_.dual_feasibility_tolerance_;
1491 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
1492 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
1493 _this->_impl_.ratio_test_zero_threshold_ = from.
_impl_.ratio_test_zero_threshold_;
1495 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1496 _this->_impl_.harris_tolerance_ratio_ = from.
_impl_.harris_tolerance_ratio_;
1498 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1499 _this->_impl_.small_pivot_threshold_ = from.
_impl_.small_pivot_threshold_;
1501 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1502 _this->_impl_.minimum_acceptable_pivot_ = from.
_impl_.minimum_acceptable_pivot_;
1504 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1505 _this->_impl_.initial_basis_ = from.
_impl_.initial_basis_;
1507 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1508 _this->_impl_.basis_refactorization_period_ = from.
_impl_.basis_refactorization_period_;
1510 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
1511 _this->_impl_.use_scaling_ = from.
_impl_.use_scaling_;
1513 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1514 _this->_impl_.use_transposed_matrix_ = from.
_impl_.use_transposed_matrix_;
1517 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
1518 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1519 _this->_impl_.provide_strong_optimal_guarantee_ = from.
_impl_.provide_strong_optimal_guarantee_;
1521 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1522 _this->_impl_.solve_dual_problem_ = from.
_impl_.solve_dual_problem_;
1524 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1525 _this->_impl_.dualizer_threshold_ = from.
_impl_.dualizer_threshold_;
1527 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1528 _this->_impl_.solution_feasibility_tolerance_ = from.
_impl_.solution_feasibility_tolerance_;
1530 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1531 _this->_impl_.lu_factorization_pivot_threshold_ = from.
_impl_.lu_factorization_pivot_threshold_;
1533 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1534 _this->_impl_.max_time_in_seconds_ = from.
_impl_.max_time_in_seconds_;
1536 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1537 _this->_impl_.max_number_of_iterations_ = from.
_impl_.max_number_of_iterations_;
1539 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1540 _this->_impl_.markowitz_singularity_threshold_ = from.
_impl_.markowitz_singularity_threshold_;
1543 if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
1544 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1545 _this->_impl_.markowitz_zlatev_parameter_ = from.
_impl_.markowitz_zlatev_parameter_;
1547 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1548 _this->_impl_.num_omp_threads_ = from.
_impl_.num_omp_threads_;
1550 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1551 _this->_impl_.preprocessor_zero_tolerance_ = from.
_impl_.preprocessor_zero_tolerance_;
1553 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
1554 _this->_impl_.allow_simplex_algorithm_change_ = from.
_impl_.allow_simplex_algorithm_change_;
1556 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
1557 _this->_impl_.perturb_costs_in_dual_simplex_ = from.
_impl_.perturb_costs_in_dual_simplex_;
1559 if (CheckHasBit(cached_has_bits, 0x20000000U)) {
1560 _this->_impl_.log_search_progress_ = from.
_impl_.log_search_progress_;
1562 if (CheckHasBit(cached_has_bits, 0x40000000U)) {
1563 _this->_impl_.dual_price_prioritize_norm_ = from.
_impl_.dual_price_prioritize_norm_;
1565 if (CheckHasBit(cached_has_bits, 0x80000000U)) {
1566 _this->_impl_.use_absl_random_ = from.
_impl_.use_absl_random_;
1569 cached_has_bits = from.
_impl_._has_bits_[1];
1570 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1571 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1572 _this->_impl_.devex_weights_reset_period_ = from.
_impl_.devex_weights_reset_period_;
1574 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1575 _this->_impl_.use_preprocessing_ = from.
_impl_.use_preprocessing_;
1577 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1578 _this->_impl_.use_middle_product_form_update_ = from.
_impl_.use_middle_product_form_update_;
1580 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1581 _this->_impl_.initialize_devex_with_column_norms_ = from.
_impl_.initialize_devex_with_column_norms_;
1583 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1584 _this->_impl_.exploit_singleton_column_in_initial_basis_ = from.
_impl_.exploit_singleton_column_in_initial_basis_;
1586 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1587 _this->_impl_.dual_small_pivot_threshold_ = from.
_impl_.dual_small_pivot_threshold_;
1589 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1590 _this->_impl_.objective_lower_limit_ = from.
_impl_.objective_lower_limit_;
1592 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1593 _this->_impl_.objective_upper_limit_ = from.
_impl_.objective_upper_limit_;
1596 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
1597 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
1598 _this->_impl_.degenerate_ministep_factor_ = from.
_impl_.degenerate_ministep_factor_;
1600 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
1601 _this->_impl_.max_deterministic_time_ = from.
_impl_.max_deterministic_time_;
1603 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
1604 _this->_impl_.random_seed_ = from.
_impl_.random_seed_;
1606 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
1607 _this->_impl_.scaling_method_ = from.
_impl_.scaling_method_;
1609 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
1610 _this->_impl_.drop_tolerance_ = from.
_impl_.drop_tolerance_;
1612 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
1613 _this->_impl_.relative_cost_perturbation_ = from.
_impl_.relative_cost_perturbation_;
1615 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
1616 _this->_impl_.relative_max_cost_perturbation_ = from.
_impl_.relative_max_cost_perturbation_;
1618 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
1619 _this->_impl_.max_number_of_reoptimizations_ = from.
_impl_.max_number_of_reoptimizations_;
1622 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
1623 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
1624 _this->_impl_.initial_condition_number_threshold_ = from.
_impl_.initial_condition_number_threshold_;
1626 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
1627 _this->_impl_.cost_scaling_ = from.
_impl_.cost_scaling_;
1629 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
1630 _this->_impl_.change_status_to_imprecise_ = from.
_impl_.change_status_to_imprecise_;
1632 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
1633 _this->_impl_.use_dedicated_dual_feasibility_algorithm_ = from.
_impl_.use_dedicated_dual_feasibility_algorithm_;
1635 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
1636 _this->_impl_.dynamically_adjust_refactorization_period_ = from.
_impl_.dynamically_adjust_refactorization_period_;
1638 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
1639 _this->_impl_.push_to_vertex_ = from.
_impl_.push_to_vertex_;
1641 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
1642 _this->_impl_.crossover_bound_snapping_distance_ = from.
_impl_.crossover_bound_snapping_distance_;
1644 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
1645 _this->_impl_.max_valid_magnitude_ = from.
_impl_.max_valid_magnitude_;
1648 if (BatchCheckHasBit(cached_has_bits, 0x07000000U)) {
1649 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
1650 _this->_impl_.drop_magnitude_ = from.
_impl_.drop_magnitude_;
1652 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
1653 _this->_impl_.log_to_stdout_ = from.
_impl_.log_to_stdout_;
1655 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
1656 _this->_impl_.use_implied_free_preprocessor_ = from.
_impl_.use_implied_free_preprocessor_;
1659 _this->_impl_._has_bits_.Or(from.
_impl_._has_bits_);
1660 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1661 from._internal_metadata_);
1666 if (&from ==
this)
return;
1672void GlopParameters::InternalSwap(
GlopParameters* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
1674 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1675 swap(
_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1676 swap(
_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
1677 ::google::protobuf::internal::memswap<
1681 reinterpret_cast<char*
>(&
_impl_.use_dual_simplex_),
1682 reinterpret_cast<char*
>(&other->_impl_.use_dual_simplex_));
1686 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1696PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
1699 ::std::false_type{});
1700#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[]
decltype(::std::declval< GlopParameters >()._impl_._has_bits_) HasBits
static constexpr ::int32_t kHasBitsOffset
::size_t ByteSizeLong() const final
friend class ::google::protobuf::MessageLite
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
::google::protobuf::Metadata GetMetadata() const
friend void swap(GlopParameters &a, GlopParameters &b)
~GlopParameters() PROTOBUF_FINAL
void MergeFrom(const GlopParameters &from)
void CopyFrom(const GlopParameters &from)
static constexpr auto InternalGenerateClassData_()
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas
const ::uint32_t TableStruct_ortools_2fglop_2fparameters_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold)
::absl::once_flag descriptor_table_ortools_2fglop_2fparameters_2eproto_once
static const ::_pb::EnumDescriptor *PROTOBUF_NONNULL file_level_enum_descriptors_ortools_2fglop_2fparameters_2eproto[5]
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fglop_2fparameters_2eproto
static constexprconst ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE file_level_service_descriptors_ortools_2fglop_2fparameters_2eproto
GlopParameters_CostScalingAlgorithm
PROTOBUF_CONSTINIT const uint32_t GlopParameters_ScalingAlgorithm_internal_data_[]
PROTOBUF_CONSTINIT const uint32_t GlopParameters_PricingRule_internal_data_[]
GlopParameters_PricingRule
GlopParameters_InitialBasisHeuristic
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL GlopParameters_InitialBasisHeuristic_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL GlopParameters_PricingRule_descriptor()
GlopParameters_ScalingAlgorithm
PROTOBUF_CONSTINIT const uint32_t GlopParameters_CostScalingAlgorithm_internal_data_[]
GlopParameters_SolverBehavior
PROTOBUF_CONSTINIT const uint32_t GlopParameters_SolverBehavior_internal_data_[]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GlopParametersDefaultTypeInternal _GlopParameters_default_instance_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL GlopParameters_ScalingAlgorithm_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL GlopParameters_CostScalingAlgorithm_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL GlopParameters_SolverBehavior_descriptor()
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull GlopParameters_class_data_
PROTOBUF_CONSTINIT const uint32_t GlopParameters_InitialBasisHeuristic_internal_data_[]
~GlopParametersDefaultTypeInternal()
PROTOBUF_CONSTEXPR GlopParametersDefaultTypeInternal()