8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
16 #include <google/protobuf/port_def.inc>
21 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<GlopParameters>
_instance;
26 GOOGLE_PROTOBUF_VERIFY_VERSION;
31 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
33 ::operations_research::glop::GlopParameters::InitAsDefaultInstance();
151 { 0, 55,
sizeof(::operations_research::glop::GlopParameters)},
159 "\n\035ortools/glop/parameters.proto\022\030operati"
160 "ons_research.glop\"\202\026\n\016GlopParameters\022`\n\016"
161 "scaling_method\0309 \001(\01629.operations_resear"
162 "ch.glop.GlopParameters.ScalingAlgorithm:"
163 "\rEQUILIBRATION\022]\n\020feasibility_rule\030\001 \001(\016"
164 "24.operations_research.glop.GlopParamete"
165 "rs.PricingRule:\rSTEEPEST_EDGE\022^\n\021optimiz"
166 "ation_rule\030\002 \001(\01624.operations_research.g"
167 "lop.GlopParameters.PricingRule:\rSTEEPEST"
168 "_EDGE\022)\n\033normalize_using_column_norm\030\004 \001"
169 "(\010:\004true\022 \n\022use_nested_pricing\030\005 \001(\010:\004tr"
170 "ue\022(\n\031refactorization_threshold\030\006 \001(\001:\0051"
171 "e-09\0220\n!recompute_reduced_costs_threshol"
172 "d\030\010 \001(\001:\0051e-08\022+\n\036recompute_edges_norm_t"
173 "hreshold\030\t \001(\001:\003100\022+\n\034primal_feasibilit"
174 "y_tolerance\030\n \001(\001:\0051e-08\022)\n\032dual_feasibi"
175 "lity_tolerance\030\013 \001(\001:\0051e-08\022(\n\031ratio_tes"
176 "t_zero_threshold\030\014 \001(\001:\0051e-09\022#\n\026harris_"
177 "tolerance_ratio\030\r \001(\001:\0030.5\022$\n\025small_pivo"
178 "t_threshold\030\016 \001(\001:\0051e-06\022\'\n\030minimum_acce"
179 "ptable_pivot\030\017 \001(\001:\0051e-06\022\035\n\016drop_tolera"
180 "nce\0304 \001(\001:\0051e-14\022\031\n\013use_scaling\030\020 \001(\010:\004t"
181 "rue\022m\n\014cost_scaling\030< \001(\0162=.operations_r"
182 "esearch.glop.GlopParameters.CostScalingA"
183 "lgorithm:\030CONTAIN_ONE_COST_SCALING\022a\n\rin"
184 "itial_basis\030\021 \001(\0162>.operations_research."
185 "glop.GlopParameters.InitialBasisHeuristi"
186 "c:\nTRIANGULAR\022#\n\025use_transposed_matrix\030\022"
187 " \001(\010:\004true\022(\n\034basis_refactorization_peri"
188 "od\030\023 \001(\005:\00264\022f\n\022solve_dual_problem\030\024 \001(\016"
189 "27.operations_research.glop.GlopParamete"
190 "rs.SolverBehavior:\021LET_SOLVER_DECIDE\022\037\n\022"
191 "dualizer_threshold\030\025 \001(\001:\0031.5\022-\n\036solutio"
192 "n_feasibility_tolerance\030\026 \001(\001:\0051e-06\022.\n "
193 "provide_strong_optimal_guarantee\030\030 \001(\010:\004"
194 "true\022(\n\032change_status_to_imprecise\030: \001(\010"
195 ":\004true\022)\n\035max_number_of_reoptimizations\030"
196 "8 \001(\001:\00240\022.\n lu_factorization_pivot_thre"
197 "shold\030\031 \001(\001:\0040.01\022 \n\023max_time_in_seconds"
198 "\030\032 \001(\001:\003inf\022#\n\026max_deterministic_time\030- "
199 "\001(\001:\003inf\022$\n\030max_number_of_iterations\030\033 \001"
200 "(\003:\002-1\022%\n\032markowitz_zlatev_parameter\030\035 \001"
201 "(\005:\0013\022.\n\037markowitz_singularity_threshold"
202 "\030\036 \001(\001:\0051e-15\022\037\n\020use_dual_simplex\030\037 \001(\010:"
203 "\005false\022-\n\036allow_simplex_algorithm_change"
204 "\030 \001(\010:\005false\022\'\n\032devex_weights_reset_per"
205 "iod\030! \001(\005:\003150\022\037\n\021use_preprocessing\030\" \001("
206 "\010:\004true\022,\n\036use_middle_product_form_updat"
207 "e\030# \001(\010:\004true\0220\n\"initialize_devex_with_c"
208 "olumn_norms\030$ \001(\010:\004true\0227\n)exploit_singl"
209 "eton_column_in_initial_basis\030% \001(\010:\004true"
210 "\022*\n\032dual_small_pivot_threshold\030& \001(\001:\0060."
211 "0001\022*\n\033preprocessor_zero_tolerance\030\' \001("
212 "\001:\0051e-09\022#\n\025objective_lower_limit\030( \001(\001:"
213 "\004-inf\022\"\n\025objective_upper_limit\030) \001(\001:\003in"
214 "f\022(\n\032degenerate_ministep_factor\030* \001(\001:\0040"
215 ".01\022\026\n\013random_seed\030+ \001(\005:\0011\022\032\n\017num_omp_t"
216 "hreads\030, \001(\005:\0011\022,\n\035perturb_costs_in_dual"
217 "_simplex\0305 \001(\010:\005false\022)\n\032relative_cost_p"
218 "erturbation\0306 \001(\001:\0051e-05\022-\n\036relative_max"
219 "_cost_perturbation\0307 \001(\001:\0051e-07\0221\n\"initi"
220 "al_condition_number_threshold\030; \001(\001:\0051e+"
221 "50\"F\n\020ScalingAlgorithm\022\013\n\007DEFAULT\020\000\022\021\n\rE"
222 "QUILIBRATION\020\001\022\022\n\016LINEAR_PROGRAM\020\002\"D\n\016So"
223 "lverBehavior\022\r\n\tALWAYS_DO\020\000\022\014\n\010NEVER_DO\020"
224 "\001\022\025\n\021LET_SOLVER_DECIDE\020\002\"8\n\013PricingRule\022"
225 "\013\n\007DANTZIG\020\000\022\021\n\rSTEEPEST_EDGE\020\001\022\t\n\005DEVEX"
226 "\020\002\"G\n\025InitialBasisHeuristic\022\010\n\004NONE\020\000\022\t\n"
227 "\005BIXBY\020\001\022\016\n\nTRIANGULAR\020\002\022\t\n\005MAROS\020\003\"y\n\024C"
228 "ostScalingAlgorithm\022\023\n\017NO_COST_SCALING\020\000"
229 "\022\034\n\030CONTAIN_ONE_COST_SCALING\020\001\022\025\n\021MEAN_C"
230 "OST_SCALING\020\002\022\027\n\023MEDIAN_COST_SCALING\020\003"
239 false,
false, descriptor_table_protodef_ortools_2fglop_2fparameters_2eproto,
"ortools/glop/parameters.proto", 2878,
264 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
270 constexpr
int GlopParameters::ScalingAlgorithm_ARRAYSIZE;
271 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
287 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
293 constexpr
int GlopParameters::SolverBehavior_ARRAYSIZE;
294 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
310 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
316 constexpr
int GlopParameters::PricingRule_ARRAYSIZE;
317 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
334 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
341 constexpr
int GlopParameters::InitialBasisHeuristic_ARRAYSIZE;
342 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
359 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
366 constexpr
int GlopParameters::CostScalingAlgorithm_ARRAYSIZE;
367 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
371 void GlopParameters::InitAsDefaultInstance() {
375 using HasBits = decltype(std::declval<GlopParameters>()._has_bits_);
377 (*has_bits)[1] |= 32768u;
380 (*has_bits)[0] |= 8u;
383 (*has_bits)[0] |= 16u;
386 (*has_bits)[0] |= 2048u;
389 (*has_bits)[0] |= 4096u;
392 (*has_bits)[0] |= 32u;
395 (*has_bits)[0] |= 64u;
398 (*has_bits)[0] |= 128u;
401 (*has_bits)[0] |= 256u;
404 (*has_bits)[0] |= 512u;
407 (*has_bits)[0] |= 1024u;
410 (*has_bits)[0] |= 65536u;
413 (*has_bits)[0] |= 131072u;
416 (*has_bits)[0] |= 262144u;
419 (*has_bits)[1] |= 2048u;
422 (*has_bits)[0] |= 8192u;
425 (*has_bits)[1] |= 65536u;
428 (*has_bits)[0] |= 32768u;
431 (*has_bits)[0] |= 16384u;
434 (*has_bits)[0] |= 524288u;
437 (*has_bits)[0] |= 1048576u;
440 (*has_bits)[0] |= 2097152u;
443 (*has_bits)[0] |= 4194304u;
446 (*has_bits)[0] |= 2147483648u;
449 (*has_bits)[1] |= 1u;
452 (*has_bits)[1] |= 16384u;
455 (*has_bits)[0] |= 8388608u;
458 (*has_bits)[0] |= 16777216u;
461 (*has_bits)[1] |= 1024u;
464 (*has_bits)[0] |= 33554432u;
467 (*has_bits)[0] |= 134217728u;
470 (*has_bits)[0] |= 67108864u;
473 (*has_bits)[0] |= 1u;
476 (*has_bits)[0] |= 2u;
479 (*has_bits)[0] |= 268435456u;
482 (*has_bits)[1] |= 2u;
485 (*has_bits)[1] |= 4u;
488 (*has_bits)[0] |= 536870912u;
491 (*has_bits)[0] |= 1073741824u;
494 (*has_bits)[1] |= 8u;
497 (*has_bits)[1] |= 16u;
500 (*has_bits)[1] |= 32u;
503 (*has_bits)[1] |= 64u;
506 (*has_bits)[1] |= 128u;
509 (*has_bits)[1] |= 256u;
512 (*has_bits)[1] |= 512u;
515 (*has_bits)[0] |= 4u;
518 (*has_bits)[1] |= 4096u;
521 (*has_bits)[1] |= 8192u;
524 (*has_bits)[1] |= 131072u;
528 GlopParameters::GlopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
529 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
531 RegisterArenaDtor(arena);
534 GlopParameters::GlopParameters(
const GlopParameters& from)
535 : ::PROTOBUF_NAMESPACE_ID::Message(),
536 _has_bits_(from._has_bits_) {
537 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
538 ::memcpy(&use_dual_simplex_, &from.use_dual_simplex_,
539 static_cast<size_t>(
reinterpret_cast<char*
>(&initial_condition_number_threshold_) -
540 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(initial_condition_number_threshold_));
544 void GlopParameters::SharedCtor() {
545 ::memset(&use_dual_simplex_, 0,
static_cast<size_t>(
546 reinterpret_cast<char*
>(&perturb_costs_in_dual_simplex_) -
547 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(perturb_costs_in_dual_simplex_));
548 feasibility_rule_ = 1;
549 optimization_rule_ = 1;
550 refactorization_threshold_ = 1e-09;
551 recompute_reduced_costs_threshold_ = 1e-08;
552 recompute_edges_norm_threshold_ = 100;
553 primal_feasibility_tolerance_ = 1e-08;
554 dual_feasibility_tolerance_ = 1e-08;
555 ratio_test_zero_threshold_ = 1e-09;
556 normalize_using_column_norm_ =
true;
557 use_nested_pricing_ =
true;
559 use_transposed_matrix_ =
true;
561 harris_tolerance_ratio_ = 0.5;
562 small_pivot_threshold_ = 1e-06;
563 minimum_acceptable_pivot_ = 1e-06;
564 basis_refactorization_period_ = 64;
565 solve_dual_problem_ = 2;
566 dualizer_threshold_ = 1.5;
567 solution_feasibility_tolerance_ = 1e-06;
568 lu_factorization_pivot_threshold_ = 0.01;
569 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
570 max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
571 markowitz_singularity_threshold_ = 1e-15;
572 markowitz_zlatev_parameter_ = 3;
573 devex_weights_reset_period_ = 150;
574 initialize_devex_with_column_norms_ =
true;
575 exploit_singleton_column_in_initial_basis_ =
true;
576 provide_strong_optimal_guarantee_ =
true;
577 change_status_to_imprecise_ =
true;
578 use_preprocessing_ =
true;
579 use_middle_product_form_update_ =
true;
580 dual_small_pivot_threshold_ = 0.0001;
581 preprocessor_zero_tolerance_ = 1e-09;
582 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
583 objective_upper_limit_ = std::numeric_limits<double>::infinity();
584 degenerate_ministep_factor_ = 0.01;
586 num_omp_threads_ = 1;
587 max_deterministic_time_ = std::numeric_limits<double>::infinity();
588 drop_tolerance_ = 1e-14;
589 relative_cost_perturbation_ = 1e-05;
590 relative_max_cost_perturbation_ = 1e-07;
591 max_number_of_reoptimizations_ = 40;
594 initial_condition_number_threshold_ = 1e+50;
597 GlopParameters::~GlopParameters() {
600 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
603 void GlopParameters::SharedDtor() {
604 GOOGLE_DCHECK(GetArena() ==
nullptr);
607 void GlopParameters::ArenaDtor(
void*
object) {
608 GlopParameters* _this =
reinterpret_cast< GlopParameters*
>(object);
611 void GlopParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
613 void GlopParameters::SetCachedSize(
int size)
const {
614 _cached_size_.Set(size);
616 const GlopParameters& GlopParameters::default_instance() {
618 return *internal_default_instance();
622 void GlopParameters::Clear() {
626 (void) cached_has_bits;
628 ::memset(&use_dual_simplex_, 0,
static_cast<size_t>(
629 reinterpret_cast<char*
>(&perturb_costs_in_dual_simplex_) -
630 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(perturb_costs_in_dual_simplex_));
631 cached_has_bits = _has_bits_[0];
632 if (cached_has_bits & 0x000000f8u) {
633 feasibility_rule_ = 1;
634 optimization_rule_ = 1;
635 refactorization_threshold_ = 1e-09;
636 recompute_reduced_costs_threshold_ = 1e-08;
637 recompute_edges_norm_threshold_ = 100;
639 if (cached_has_bits & 0x0000ff00u) {
640 primal_feasibility_tolerance_ = 1e-08;
641 dual_feasibility_tolerance_ = 1e-08;
642 ratio_test_zero_threshold_ = 1e-09;
643 normalize_using_column_norm_ =
true;
644 use_nested_pricing_ =
true;
646 use_transposed_matrix_ =
true;
649 if (cached_has_bits & 0x00ff0000u) {
650 harris_tolerance_ratio_ = 0.5;
651 small_pivot_threshold_ = 1e-06;
652 minimum_acceptable_pivot_ = 1e-06;
653 basis_refactorization_period_ = 64;
654 solve_dual_problem_ = 2;
655 dualizer_threshold_ = 1.5;
656 solution_feasibility_tolerance_ = 1e-06;
657 lu_factorization_pivot_threshold_ = 0.01;
659 if (cached_has_bits & 0xff000000u) {
660 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
661 max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
662 markowitz_singularity_threshold_ = 1e-15;
663 markowitz_zlatev_parameter_ = 3;
664 devex_weights_reset_period_ = 150;
665 initialize_devex_with_column_norms_ =
true;
666 exploit_singleton_column_in_initial_basis_ =
true;
667 provide_strong_optimal_guarantee_ =
true;
669 cached_has_bits = _has_bits_[1];
670 if (cached_has_bits & 0x000000ffu) {
671 change_status_to_imprecise_ =
true;
672 use_preprocessing_ =
true;
673 use_middle_product_form_update_ =
true;
674 dual_small_pivot_threshold_ = 0.0001;
675 preprocessor_zero_tolerance_ = 1e-09;
676 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
677 objective_upper_limit_ = std::numeric_limits<double>::infinity();
678 degenerate_ministep_factor_ = 0.01;
680 if (cached_has_bits & 0x0000ff00u) {
682 num_omp_threads_ = 1;
683 max_deterministic_time_ = std::numeric_limits<double>::infinity();
684 drop_tolerance_ = 1e-14;
685 relative_cost_perturbation_ = 1e-05;
686 relative_max_cost_perturbation_ = 1e-07;
687 max_number_of_reoptimizations_ = 40;
690 if (cached_has_bits & 0x00030000u) {
692 initial_condition_number_threshold_ = 1e+50;
695 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
698 const char* GlopParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
699 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
700 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
701 while (!ctx->Done(&ptr)) {
703 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
714 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
716 }
else goto handle_unusual;
726 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(2, val, mutable_unknown_fields());
728 }
else goto handle_unusual;
734 normalize_using_column_norm_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
736 }
else goto handle_unusual;
742 use_nested_pricing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
744 }
else goto handle_unusual;
750 refactorization_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
751 ptr +=
sizeof(double);
752 }
else goto handle_unusual;
758 recompute_reduced_costs_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
759 ptr +=
sizeof(double);
760 }
else goto handle_unusual;
766 recompute_edges_norm_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
767 ptr +=
sizeof(double);
768 }
else goto handle_unusual;
774 primal_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
775 ptr +=
sizeof(double);
776 }
else goto handle_unusual;
782 dual_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
783 ptr +=
sizeof(double);
784 }
else goto handle_unusual;
790 ratio_test_zero_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
791 ptr +=
sizeof(double);
792 }
else goto handle_unusual;
798 harris_tolerance_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
799 ptr +=
sizeof(double);
800 }
else goto handle_unusual;
806 small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
807 ptr +=
sizeof(double);
808 }
else goto handle_unusual;
814 minimum_acceptable_pivot_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
815 ptr +=
sizeof(double);
816 }
else goto handle_unusual;
822 use_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
824 }
else goto handle_unusual;
834 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(17, val, mutable_unknown_fields());
836 }
else goto handle_unusual;
842 use_transposed_matrix_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
844 }
else goto handle_unusual;
850 basis_refactorization_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
852 }
else goto handle_unusual;
862 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(20, val, mutable_unknown_fields());
864 }
else goto handle_unusual;
870 dualizer_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
871 ptr +=
sizeof(double);
872 }
else goto handle_unusual;
878 solution_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
879 ptr +=
sizeof(double);
880 }
else goto handle_unusual;
886 provide_strong_optimal_guarantee_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
888 }
else goto handle_unusual;
894 lu_factorization_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
895 ptr +=
sizeof(double);
896 }
else goto handle_unusual;
902 max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
903 ptr +=
sizeof(double);
904 }
else goto handle_unusual;
910 max_number_of_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
912 }
else goto handle_unusual;
918 markowitz_zlatev_parameter_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
920 }
else goto handle_unusual;
926 markowitz_singularity_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
927 ptr +=
sizeof(double);
928 }
else goto handle_unusual;
934 use_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
936 }
else goto handle_unusual;
942 allow_simplex_algorithm_change_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
944 }
else goto handle_unusual;
950 devex_weights_reset_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
952 }
else goto handle_unusual;
958 use_preprocessing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
960 }
else goto handle_unusual;
966 use_middle_product_form_update_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
968 }
else goto handle_unusual;
974 initialize_devex_with_column_norms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
976 }
else goto handle_unusual;
982 exploit_singleton_column_in_initial_basis_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
984 }
else goto handle_unusual;
990 dual_small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
991 ptr +=
sizeof(double);
992 }
else goto handle_unusual;
998 preprocessor_zero_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
999 ptr +=
sizeof(double);
1000 }
else goto handle_unusual;
1006 objective_lower_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1007 ptr +=
sizeof(double);
1008 }
else goto handle_unusual;
1014 objective_upper_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1015 ptr +=
sizeof(double);
1016 }
else goto handle_unusual;
1022 degenerate_ministep_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1023 ptr +=
sizeof(double);
1024 }
else goto handle_unusual;
1030 random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1032 }
else goto handle_unusual;
1038 num_omp_threads_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1040 }
else goto handle_unusual;
1046 max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1047 ptr +=
sizeof(double);
1048 }
else goto handle_unusual;
1054 drop_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1055 ptr +=
sizeof(double);
1056 }
else goto handle_unusual;
1062 perturb_costs_in_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1064 }
else goto handle_unusual;
1070 relative_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1071 ptr +=
sizeof(double);
1072 }
else goto handle_unusual;
1078 relative_max_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1079 ptr +=
sizeof(double);
1080 }
else goto handle_unusual;
1086 max_number_of_reoptimizations_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1087 ptr +=
sizeof(double);
1088 }
else goto handle_unusual;
1098 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(57, val, mutable_unknown_fields());
1100 }
else goto handle_unusual;
1106 change_status_to_imprecise_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1108 }
else goto handle_unusual;
1114 initial_condition_number_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1115 ptr +=
sizeof(double);
1116 }
else goto handle_unusual;
1126 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(60, val, mutable_unknown_fields());
1128 }
else goto handle_unusual;
1132 if ((tag & 7) == 4 || tag == 0) {
1133 ctx->SetLastTag(tag);
1136 ptr = UnknownFieldParse(tag,
1137 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1139 CHK_(ptr !=
nullptr);
1156 (void) cached_has_bits;
1158 cached_has_bits = _has_bits_[0];
1160 if (cached_has_bits & 0x00000008u) {
1161 target = stream->EnsureSpace(target);
1162 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1163 1, this->_internal_feasibility_rule(), target);
1167 if (cached_has_bits & 0x00000010u) {
1168 target = stream->EnsureSpace(target);
1169 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1170 2, this->_internal_optimization_rule(), target);
1174 if (cached_has_bits & 0x00000800u) {
1175 target = stream->EnsureSpace(target);
1176 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_normalize_using_column_norm(), target);
1180 if (cached_has_bits & 0x00001000u) {
1181 target = stream->EnsureSpace(target);
1182 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_use_nested_pricing(), target);
1186 if (cached_has_bits & 0x00000020u) {
1187 target = stream->EnsureSpace(target);
1188 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(6, this->_internal_refactorization_threshold(), target);
1192 if (cached_has_bits & 0x00000040u) {
1193 target = stream->EnsureSpace(target);
1194 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(8, this->_internal_recompute_reduced_costs_threshold(), target);
1198 if (cached_has_bits & 0x00000080u) {
1199 target = stream->EnsureSpace(target);
1200 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(9, this->_internal_recompute_edges_norm_threshold(), target);
1204 if (cached_has_bits & 0x00000100u) {
1205 target = stream->EnsureSpace(target);
1206 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(10, this->_internal_primal_feasibility_tolerance(), target);
1210 if (cached_has_bits & 0x00000200u) {
1211 target = stream->EnsureSpace(target);
1212 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(11, this->_internal_dual_feasibility_tolerance(), target);
1216 if (cached_has_bits & 0x00000400u) {
1217 target = stream->EnsureSpace(target);
1218 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(12, this->_internal_ratio_test_zero_threshold(), target);
1222 if (cached_has_bits & 0x00010000u) {
1223 target = stream->EnsureSpace(target);
1224 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(13, this->_internal_harris_tolerance_ratio(), target);
1228 if (cached_has_bits & 0x00020000u) {
1229 target = stream->EnsureSpace(target);
1230 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_small_pivot_threshold(), target);
1234 if (cached_has_bits & 0x00040000u) {
1235 target = stream->EnsureSpace(target);
1236 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_minimum_acceptable_pivot(), target);
1240 if (cached_has_bits & 0x00002000u) {
1241 target = stream->EnsureSpace(target);
1242 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(16, this->_internal_use_scaling(), target);
1246 if (cached_has_bits & 0x00008000u) {
1247 target = stream->EnsureSpace(target);
1248 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1249 17, this->_internal_initial_basis(), target);
1253 if (cached_has_bits & 0x00004000u) {
1254 target = stream->EnsureSpace(target);
1255 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(18, this->_internal_use_transposed_matrix(), target);
1259 if (cached_has_bits & 0x00080000u) {
1260 target = stream->EnsureSpace(target);
1261 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_basis_refactorization_period(), target);
1265 if (cached_has_bits & 0x00100000u) {
1266 target = stream->EnsureSpace(target);
1267 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1268 20, this->_internal_solve_dual_problem(), target);
1272 if (cached_has_bits & 0x00200000u) {
1273 target = stream->EnsureSpace(target);
1274 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_dualizer_threshold(), target);
1278 if (cached_has_bits & 0x00400000u) {
1279 target = stream->EnsureSpace(target);
1280 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_solution_feasibility_tolerance(), target);
1284 if (cached_has_bits & 0x80000000u) {
1285 target = stream->EnsureSpace(target);
1286 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(24, this->_internal_provide_strong_optimal_guarantee(), target);
1290 if (cached_has_bits & 0x00800000u) {
1291 target = stream->EnsureSpace(target);
1292 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(25, this->_internal_lu_factorization_pivot_threshold(), target);
1296 if (cached_has_bits & 0x01000000u) {
1297 target = stream->EnsureSpace(target);
1298 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(26, this->_internal_max_time_in_seconds(), target);
1302 if (cached_has_bits & 0x02000000u) {
1303 target = stream->EnsureSpace(target);
1304 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(27, this->_internal_max_number_of_iterations(), target);
1308 if (cached_has_bits & 0x08000000u) {
1309 target = stream->EnsureSpace(target);
1310 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(29, this->_internal_markowitz_zlatev_parameter(), target);
1314 if (cached_has_bits & 0x04000000u) {
1315 target = stream->EnsureSpace(target);
1316 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(30, this->_internal_markowitz_singularity_threshold(), target);
1320 if (cached_has_bits & 0x00000001u) {
1321 target = stream->EnsureSpace(target);
1322 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(31, this->_internal_use_dual_simplex(), target);
1326 if (cached_has_bits & 0x00000002u) {
1327 target = stream->EnsureSpace(target);
1328 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(32, this->_internal_allow_simplex_algorithm_change(), target);
1332 if (cached_has_bits & 0x10000000u) {
1333 target = stream->EnsureSpace(target);
1334 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(33, this->_internal_devex_weights_reset_period(), target);
1337 cached_has_bits = _has_bits_[1];
1339 if (cached_has_bits & 0x00000002u) {
1340 target = stream->EnsureSpace(target);
1341 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(34, this->_internal_use_preprocessing(), target);
1345 if (cached_has_bits & 0x00000004u) {
1346 target = stream->EnsureSpace(target);
1347 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(35, this->_internal_use_middle_product_form_update(), target);
1350 cached_has_bits = _has_bits_[0];
1352 if (cached_has_bits & 0x20000000u) {
1353 target = stream->EnsureSpace(target);
1354 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(36, this->_internal_initialize_devex_with_column_norms(), target);
1358 if (cached_has_bits & 0x40000000u) {
1359 target = stream->EnsureSpace(target);
1360 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(37, this->_internal_exploit_singleton_column_in_initial_basis(), target);
1363 cached_has_bits = _has_bits_[1];
1365 if (cached_has_bits & 0x00000008u) {
1366 target = stream->EnsureSpace(target);
1367 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_dual_small_pivot_threshold(), target);
1371 if (cached_has_bits & 0x00000010u) {
1372 target = stream->EnsureSpace(target);
1373 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(39, this->_internal_preprocessor_zero_tolerance(), target);
1377 if (cached_has_bits & 0x00000020u) {
1378 target = stream->EnsureSpace(target);
1379 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(40, this->_internal_objective_lower_limit(), target);
1383 if (cached_has_bits & 0x00000040u) {
1384 target = stream->EnsureSpace(target);
1385 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(41, this->_internal_objective_upper_limit(), target);
1389 if (cached_has_bits & 0x00000080u) {
1390 target = stream->EnsureSpace(target);
1391 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_degenerate_ministep_factor(), target);
1395 if (cached_has_bits & 0x00000100u) {
1396 target = stream->EnsureSpace(target);
1397 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(43, this->_internal_random_seed(), target);
1401 if (cached_has_bits & 0x00000200u) {
1402 target = stream->EnsureSpace(target);
1403 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(44, this->_internal_num_omp_threads(), target);
1407 if (cached_has_bits & 0x00000400u) {
1408 target = stream->EnsureSpace(target);
1409 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(45, this->_internal_max_deterministic_time(), target);
1413 if (cached_has_bits & 0x00000800u) {
1414 target = stream->EnsureSpace(target);
1415 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(52, this->_internal_drop_tolerance(), target);
1418 cached_has_bits = _has_bits_[0];
1420 if (cached_has_bits & 0x00000004u) {
1421 target = stream->EnsureSpace(target);
1422 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(53, this->_internal_perturb_costs_in_dual_simplex(), target);
1425 cached_has_bits = _has_bits_[1];
1427 if (cached_has_bits & 0x00001000u) {
1428 target = stream->EnsureSpace(target);
1429 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(54, this->_internal_relative_cost_perturbation(), target);
1433 if (cached_has_bits & 0x00002000u) {
1434 target = stream->EnsureSpace(target);
1435 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(55, this->_internal_relative_max_cost_perturbation(), target);
1439 if (cached_has_bits & 0x00004000u) {
1440 target = stream->EnsureSpace(target);
1441 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(56, this->_internal_max_number_of_reoptimizations(), target);
1445 if (cached_has_bits & 0x00008000u) {
1446 target = stream->EnsureSpace(target);
1447 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1448 57, this->_internal_scaling_method(), target);
1452 if (cached_has_bits & 0x00000001u) {
1453 target = stream->EnsureSpace(target);
1454 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(58, this->_internal_change_status_to_imprecise(), target);
1458 if (cached_has_bits & 0x00020000u) {
1459 target = stream->EnsureSpace(target);
1460 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(59, this->_internal_initial_condition_number_threshold(), target);
1464 if (cached_has_bits & 0x00010000u) {
1465 target = stream->EnsureSpace(target);
1466 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1467 60, this->_internal_cost_scaling(), target);
1470 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1471 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1472 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1478 size_t GlopParameters::ByteSizeLong()
const {
1480 size_t total_size = 0;
1484 (void) cached_has_bits;
1486 cached_has_bits = _has_bits_[0];
1487 if (cached_has_bits & 0x000000ffu) {
1489 if (cached_has_bits & 0x00000001u) {
1490 total_size += 2 + 1;
1494 if (cached_has_bits & 0x00000002u) {
1495 total_size += 2 + 1;
1499 if (cached_has_bits & 0x00000004u) {
1500 total_size += 2 + 1;
1504 if (cached_has_bits & 0x00000008u) {
1506 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_feasibility_rule());
1510 if (cached_has_bits & 0x00000010u) {
1512 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_optimization_rule());
1516 if (cached_has_bits & 0x00000020u) {
1517 total_size += 1 + 8;
1521 if (cached_has_bits & 0x00000040u) {
1522 total_size += 1 + 8;
1526 if (cached_has_bits & 0x00000080u) {
1527 total_size += 1 + 8;
1531 if (cached_has_bits & 0x0000ff00u) {
1533 if (cached_has_bits & 0x00000100u) {
1534 total_size += 1 + 8;
1538 if (cached_has_bits & 0x00000200u) {
1539 total_size += 1 + 8;
1543 if (cached_has_bits & 0x00000400u) {
1544 total_size += 1 + 8;
1548 if (cached_has_bits & 0x00000800u) {
1549 total_size += 1 + 1;
1553 if (cached_has_bits & 0x00001000u) {
1554 total_size += 1 + 1;
1558 if (cached_has_bits & 0x00002000u) {
1559 total_size += 2 + 1;
1563 if (cached_has_bits & 0x00004000u) {
1564 total_size += 2 + 1;
1568 if (cached_has_bits & 0x00008000u) {
1570 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_initial_basis());
1574 if (cached_has_bits & 0x00ff0000u) {
1576 if (cached_has_bits & 0x00010000u) {
1577 total_size += 1 + 8;
1581 if (cached_has_bits & 0x00020000u) {
1582 total_size += 1 + 8;
1586 if (cached_has_bits & 0x00040000u) {
1587 total_size += 1 + 8;
1591 if (cached_has_bits & 0x00080000u) {
1593 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1594 this->_internal_basis_refactorization_period());
1598 if (cached_has_bits & 0x00100000u) {
1600 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_solve_dual_problem());
1604 if (cached_has_bits & 0x00200000u) {
1605 total_size += 2 + 8;
1609 if (cached_has_bits & 0x00400000u) {
1610 total_size += 2 + 8;
1614 if (cached_has_bits & 0x00800000u) {
1615 total_size += 2 + 8;
1619 if (cached_has_bits & 0xff000000u) {
1621 if (cached_has_bits & 0x01000000u) {
1622 total_size += 2 + 8;
1626 if (cached_has_bits & 0x02000000u) {
1628 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1629 this->_internal_max_number_of_iterations());
1633 if (cached_has_bits & 0x04000000u) {
1634 total_size += 2 + 8;
1638 if (cached_has_bits & 0x08000000u) {
1640 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1641 this->_internal_markowitz_zlatev_parameter());
1645 if (cached_has_bits & 0x10000000u) {
1647 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1648 this->_internal_devex_weights_reset_period());
1652 if (cached_has_bits & 0x20000000u) {
1653 total_size += 2 + 1;
1657 if (cached_has_bits & 0x40000000u) {
1658 total_size += 2 + 1;
1662 if (cached_has_bits & 0x80000000u) {
1663 total_size += 2 + 1;
1667 cached_has_bits = _has_bits_[1];
1668 if (cached_has_bits & 0x000000ffu) {
1670 if (cached_has_bits & 0x00000001u) {
1671 total_size += 2 + 1;
1675 if (cached_has_bits & 0x00000002u) {
1676 total_size += 2 + 1;
1680 if (cached_has_bits & 0x00000004u) {
1681 total_size += 2 + 1;
1685 if (cached_has_bits & 0x00000008u) {
1686 total_size += 2 + 8;
1690 if (cached_has_bits & 0x00000010u) {
1691 total_size += 2 + 8;
1695 if (cached_has_bits & 0x00000020u) {
1696 total_size += 2 + 8;
1700 if (cached_has_bits & 0x00000040u) {
1701 total_size += 2 + 8;
1705 if (cached_has_bits & 0x00000080u) {
1706 total_size += 2 + 8;
1710 if (cached_has_bits & 0x0000ff00u) {
1712 if (cached_has_bits & 0x00000100u) {
1714 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1715 this->_internal_random_seed());
1719 if (cached_has_bits & 0x00000200u) {
1721 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1722 this->_internal_num_omp_threads());
1726 if (cached_has_bits & 0x00000400u) {
1727 total_size += 2 + 8;
1731 if (cached_has_bits & 0x00000800u) {
1732 total_size += 2 + 8;
1736 if (cached_has_bits & 0x00001000u) {
1737 total_size += 2 + 8;
1741 if (cached_has_bits & 0x00002000u) {
1742 total_size += 2 + 8;
1746 if (cached_has_bits & 0x00004000u) {
1747 total_size += 2 + 8;
1751 if (cached_has_bits & 0x00008000u) {
1753 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_scaling_method());
1757 if (cached_has_bits & 0x00030000u) {
1759 if (cached_has_bits & 0x00010000u) {
1761 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_cost_scaling());
1765 if (cached_has_bits & 0x00020000u) {
1766 total_size += 2 + 8;
1770 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1771 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1772 _internal_metadata_, total_size, &_cached_size_);
1774 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1775 SetCachedSize(cached_size);
1779 void GlopParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1781 GOOGLE_DCHECK_NE(&from,
this);
1782 const GlopParameters* source =
1783 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GlopParameters>(
1785 if (source ==
nullptr) {
1787 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1794 void GlopParameters::MergeFrom(
const GlopParameters& from) {
1796 GOOGLE_DCHECK_NE(&from,
this);
1797 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1799 (void) cached_has_bits;
1801 cached_has_bits = from._has_bits_[0];
1802 if (cached_has_bits & 0x000000ffu) {
1803 if (cached_has_bits & 0x00000001u) {
1804 use_dual_simplex_ = from.use_dual_simplex_;
1806 if (cached_has_bits & 0x00000002u) {
1807 allow_simplex_algorithm_change_ = from.allow_simplex_algorithm_change_;
1809 if (cached_has_bits & 0x00000004u) {
1810 perturb_costs_in_dual_simplex_ = from.perturb_costs_in_dual_simplex_;
1812 if (cached_has_bits & 0x00000008u) {
1813 feasibility_rule_ = from.feasibility_rule_;
1815 if (cached_has_bits & 0x00000010u) {
1816 optimization_rule_ = from.optimization_rule_;
1818 if (cached_has_bits & 0x00000020u) {
1819 refactorization_threshold_ = from.refactorization_threshold_;
1821 if (cached_has_bits & 0x00000040u) {
1822 recompute_reduced_costs_threshold_ = from.recompute_reduced_costs_threshold_;
1824 if (cached_has_bits & 0x00000080u) {
1825 recompute_edges_norm_threshold_ = from.recompute_edges_norm_threshold_;
1827 _has_bits_[0] |= cached_has_bits;
1829 if (cached_has_bits & 0x0000ff00u) {
1830 if (cached_has_bits & 0x00000100u) {
1831 primal_feasibility_tolerance_ = from.primal_feasibility_tolerance_;
1833 if (cached_has_bits & 0x00000200u) {
1834 dual_feasibility_tolerance_ = from.dual_feasibility_tolerance_;
1836 if (cached_has_bits & 0x00000400u) {
1837 ratio_test_zero_threshold_ = from.ratio_test_zero_threshold_;
1839 if (cached_has_bits & 0x00000800u) {
1840 normalize_using_column_norm_ = from.normalize_using_column_norm_;
1842 if (cached_has_bits & 0x00001000u) {
1843 use_nested_pricing_ = from.use_nested_pricing_;
1845 if (cached_has_bits & 0x00002000u) {
1846 use_scaling_ = from.use_scaling_;
1848 if (cached_has_bits & 0x00004000u) {
1849 use_transposed_matrix_ = from.use_transposed_matrix_;
1851 if (cached_has_bits & 0x00008000u) {
1852 initial_basis_ = from.initial_basis_;
1854 _has_bits_[0] |= cached_has_bits;
1856 if (cached_has_bits & 0x00ff0000u) {
1857 if (cached_has_bits & 0x00010000u) {
1858 harris_tolerance_ratio_ = from.harris_tolerance_ratio_;
1860 if (cached_has_bits & 0x00020000u) {
1861 small_pivot_threshold_ = from.small_pivot_threshold_;
1863 if (cached_has_bits & 0x00040000u) {
1864 minimum_acceptable_pivot_ = from.minimum_acceptable_pivot_;
1866 if (cached_has_bits & 0x00080000u) {
1867 basis_refactorization_period_ = from.basis_refactorization_period_;
1869 if (cached_has_bits & 0x00100000u) {
1870 solve_dual_problem_ = from.solve_dual_problem_;
1872 if (cached_has_bits & 0x00200000u) {
1873 dualizer_threshold_ = from.dualizer_threshold_;
1875 if (cached_has_bits & 0x00400000u) {
1876 solution_feasibility_tolerance_ = from.solution_feasibility_tolerance_;
1878 if (cached_has_bits & 0x00800000u) {
1879 lu_factorization_pivot_threshold_ = from.lu_factorization_pivot_threshold_;
1881 _has_bits_[0] |= cached_has_bits;
1883 if (cached_has_bits & 0xff000000u) {
1884 if (cached_has_bits & 0x01000000u) {
1885 max_time_in_seconds_ = from.max_time_in_seconds_;
1887 if (cached_has_bits & 0x02000000u) {
1888 max_number_of_iterations_ = from.max_number_of_iterations_;
1890 if (cached_has_bits & 0x04000000u) {
1891 markowitz_singularity_threshold_ = from.markowitz_singularity_threshold_;
1893 if (cached_has_bits & 0x08000000u) {
1894 markowitz_zlatev_parameter_ = from.markowitz_zlatev_parameter_;
1896 if (cached_has_bits & 0x10000000u) {
1897 devex_weights_reset_period_ = from.devex_weights_reset_period_;
1899 if (cached_has_bits & 0x20000000u) {
1900 initialize_devex_with_column_norms_ = from.initialize_devex_with_column_norms_;
1902 if (cached_has_bits & 0x40000000u) {
1903 exploit_singleton_column_in_initial_basis_ = from.exploit_singleton_column_in_initial_basis_;
1905 if (cached_has_bits & 0x80000000u) {
1906 provide_strong_optimal_guarantee_ = from.provide_strong_optimal_guarantee_;
1908 _has_bits_[0] |= cached_has_bits;
1910 cached_has_bits = from._has_bits_[1];
1911 if (cached_has_bits & 0x000000ffu) {
1912 if (cached_has_bits & 0x00000001u) {
1913 change_status_to_imprecise_ = from.change_status_to_imprecise_;
1915 if (cached_has_bits & 0x00000002u) {
1916 use_preprocessing_ = from.use_preprocessing_;
1918 if (cached_has_bits & 0x00000004u) {
1919 use_middle_product_form_update_ = from.use_middle_product_form_update_;
1921 if (cached_has_bits & 0x00000008u) {
1922 dual_small_pivot_threshold_ = from.dual_small_pivot_threshold_;
1924 if (cached_has_bits & 0x00000010u) {
1925 preprocessor_zero_tolerance_ = from.preprocessor_zero_tolerance_;
1927 if (cached_has_bits & 0x00000020u) {
1928 objective_lower_limit_ = from.objective_lower_limit_;
1930 if (cached_has_bits & 0x00000040u) {
1931 objective_upper_limit_ = from.objective_upper_limit_;
1933 if (cached_has_bits & 0x00000080u) {
1934 degenerate_ministep_factor_ = from.degenerate_ministep_factor_;
1936 _has_bits_[1] |= cached_has_bits;
1938 if (cached_has_bits & 0x0000ff00u) {
1939 if (cached_has_bits & 0x00000100u) {
1940 random_seed_ = from.random_seed_;
1942 if (cached_has_bits & 0x00000200u) {
1943 num_omp_threads_ = from.num_omp_threads_;
1945 if (cached_has_bits & 0x00000400u) {
1946 max_deterministic_time_ = from.max_deterministic_time_;
1948 if (cached_has_bits & 0x00000800u) {
1949 drop_tolerance_ = from.drop_tolerance_;
1951 if (cached_has_bits & 0x00001000u) {
1952 relative_cost_perturbation_ = from.relative_cost_perturbation_;
1954 if (cached_has_bits & 0x00002000u) {
1955 relative_max_cost_perturbation_ = from.relative_max_cost_perturbation_;
1957 if (cached_has_bits & 0x00004000u) {
1958 max_number_of_reoptimizations_ = from.max_number_of_reoptimizations_;
1960 if (cached_has_bits & 0x00008000u) {
1961 scaling_method_ = from.scaling_method_;
1963 _has_bits_[1] |= cached_has_bits;
1965 if (cached_has_bits & 0x00030000u) {
1966 if (cached_has_bits & 0x00010000u) {
1967 cost_scaling_ = from.cost_scaling_;
1969 if (cached_has_bits & 0x00020000u) {
1970 initial_condition_number_threshold_ = from.initial_condition_number_threshold_;
1972 _has_bits_[1] |= cached_has_bits;
1976 void GlopParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1978 if (&from ==
this)
return;
1983 void GlopParameters::CopyFrom(
const GlopParameters& from) {
1985 if (&from ==
this)
return;
1990 bool GlopParameters::IsInitialized()
const {
1994 void GlopParameters::InternalSwap(GlopParameters* other) {
1996 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1997 swap(_has_bits_[0], other->_has_bits_[0]);
1998 swap(_has_bits_[1], other->_has_bits_[1]);
1999 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2000 PROTOBUF_FIELD_OFFSET(GlopParameters, perturb_costs_in_dual_simplex_)
2001 +
sizeof(GlopParameters::perturb_costs_in_dual_simplex_)
2002 - PROTOBUF_FIELD_OFFSET(GlopParameters, use_dual_simplex_)>(
2003 reinterpret_cast<char*
>(&use_dual_simplex_),
2004 reinterpret_cast<char*
>(&other->use_dual_simplex_));
2005 swap(feasibility_rule_, other->feasibility_rule_);
2006 swap(optimization_rule_, other->optimization_rule_);
2007 swap(refactorization_threshold_, other->refactorization_threshold_);
2008 swap(recompute_reduced_costs_threshold_, other->recompute_reduced_costs_threshold_);
2009 swap(recompute_edges_norm_threshold_, other->recompute_edges_norm_threshold_);
2010 swap(primal_feasibility_tolerance_, other->primal_feasibility_tolerance_);
2011 swap(dual_feasibility_tolerance_, other->dual_feasibility_tolerance_);
2012 swap(ratio_test_zero_threshold_, other->ratio_test_zero_threshold_);
2013 swap(normalize_using_column_norm_, other->normalize_using_column_norm_);
2014 swap(use_nested_pricing_, other->use_nested_pricing_);
2015 swap(use_scaling_, other->use_scaling_);
2016 swap(use_transposed_matrix_, other->use_transposed_matrix_);
2017 swap(initial_basis_, other->initial_basis_);
2018 swap(harris_tolerance_ratio_, other->harris_tolerance_ratio_);
2019 swap(small_pivot_threshold_, other->small_pivot_threshold_);
2020 swap(minimum_acceptable_pivot_, other->minimum_acceptable_pivot_);
2021 swap(basis_refactorization_period_, other->basis_refactorization_period_);
2022 swap(solve_dual_problem_, other->solve_dual_problem_);
2023 swap(dualizer_threshold_, other->dualizer_threshold_);
2024 swap(solution_feasibility_tolerance_, other->solution_feasibility_tolerance_);
2025 swap(lu_factorization_pivot_threshold_, other->lu_factorization_pivot_threshold_);
2026 swap(max_time_in_seconds_, other->max_time_in_seconds_);
2027 swap(max_number_of_iterations_, other->max_number_of_iterations_);
2028 swap(markowitz_singularity_threshold_, other->markowitz_singularity_threshold_);
2029 swap(markowitz_zlatev_parameter_, other->markowitz_zlatev_parameter_);
2030 swap(devex_weights_reset_period_, other->devex_weights_reset_period_);
2031 swap(initialize_devex_with_column_norms_, other->initialize_devex_with_column_norms_);
2032 swap(exploit_singleton_column_in_initial_basis_, other->exploit_singleton_column_in_initial_basis_);
2033 swap(provide_strong_optimal_guarantee_, other->provide_strong_optimal_guarantee_);
2034 swap(change_status_to_imprecise_, other->change_status_to_imprecise_);
2035 swap(use_preprocessing_, other->use_preprocessing_);
2036 swap(use_middle_product_form_update_, other->use_middle_product_form_update_);
2037 swap(dual_small_pivot_threshold_, other->dual_small_pivot_threshold_);
2038 swap(preprocessor_zero_tolerance_, other->preprocessor_zero_tolerance_);
2039 swap(objective_lower_limit_, other->objective_lower_limit_);
2040 swap(objective_upper_limit_, other->objective_upper_limit_);
2041 swap(degenerate_ministep_factor_, other->degenerate_ministep_factor_);
2042 swap(random_seed_, other->random_seed_);
2043 swap(num_omp_threads_, other->num_omp_threads_);
2044 swap(max_deterministic_time_, other->max_deterministic_time_);
2045 swap(drop_tolerance_, other->drop_tolerance_);
2046 swap(relative_cost_perturbation_, other->relative_cost_perturbation_);
2047 swap(relative_max_cost_perturbation_, other->relative_max_cost_perturbation_);
2048 swap(max_number_of_reoptimizations_, other->max_number_of_reoptimizations_);
2049 swap(scaling_method_, other->scaling_method_);
2050 swap(cost_scaling_, other->cost_scaling_);
2051 swap(initial_condition_number_threshold_, other->initial_condition_number_threshold_);
2054 ::PROTOBUF_NAMESPACE_ID::Metadata GlopParameters::GetMetadata()
const {
2055 return GetMetadataStatic();
2062 PROTOBUF_NAMESPACE_OPEN
2064 return Arena::CreateMessageInternal< ::operations_research::glop::GlopParameters >(arena);
2066 PROTOBUF_NAMESPACE_CLOSE
2069 #include <google/protobuf/port_undef.inc>