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);
150 { 0, 55,
sizeof(::operations_research::glop::GlopParameters)},
158 "\n\035ortools/glop/parameters.proto\022\030operati"
159 "ons_research.glop\"\202\026\n\016GlopParameters\022`\n\016"
160 "scaling_method\0309 \001(\01629.operations_resear"
161 "ch.glop.GlopParameters.ScalingAlgorithm:"
162 "\rEQUILIBRATION\022]\n\020feasibility_rule\030\001 \001(\016"
163 "24.operations_research.glop.GlopParamete"
164 "rs.PricingRule:\rSTEEPEST_EDGE\022^\n\021optimiz"
165 "ation_rule\030\002 \001(\01624.operations_research.g"
166 "lop.GlopParameters.PricingRule:\rSTEEPEST"
167 "_EDGE\022)\n\033normalize_using_column_norm\030\004 \001"
168 "(\010:\004true\022 \n\022use_nested_pricing\030\005 \001(\010:\004tr"
169 "ue\022(\n\031refactorization_threshold\030\006 \001(\001:\0051"
170 "e-09\0220\n!recompute_reduced_costs_threshol"
171 "d\030\010 \001(\001:\0051e-08\022+\n\036recompute_edges_norm_t"
172 "hreshold\030\t \001(\001:\003100\022+\n\034primal_feasibilit"
173 "y_tolerance\030\n \001(\001:\0051e-08\022)\n\032dual_feasibi"
174 "lity_tolerance\030\013 \001(\001:\0051e-08\022(\n\031ratio_tes"
175 "t_zero_threshold\030\014 \001(\001:\0051e-09\022#\n\026harris_"
176 "tolerance_ratio\030\r \001(\001:\0030.5\022$\n\025small_pivo"
177 "t_threshold\030\016 \001(\001:\0051e-06\022\'\n\030minimum_acce"
178 "ptable_pivot\030\017 \001(\001:\0051e-06\022\035\n\016drop_tolera"
179 "nce\0304 \001(\001:\0051e-14\022\031\n\013use_scaling\030\020 \001(\010:\004t"
180 "rue\022m\n\014cost_scaling\030< \001(\0162=.operations_r"
181 "esearch.glop.GlopParameters.CostScalingA"
182 "lgorithm:\030CONTAIN_ONE_COST_SCALING\022a\n\rin"
183 "itial_basis\030\021 \001(\0162>.operations_research."
184 "glop.GlopParameters.InitialBasisHeuristi"
185 "c:\nTRIANGULAR\022#\n\025use_transposed_matrix\030\022"
186 " \001(\010:\004true\022(\n\034basis_refactorization_peri"
187 "od\030\023 \001(\005:\00264\022f\n\022solve_dual_problem\030\024 \001(\016"
188 "27.operations_research.glop.GlopParamete"
189 "rs.SolverBehavior:\021LET_SOLVER_DECIDE\022\037\n\022"
190 "dualizer_threshold\030\025 \001(\001:\0031.5\022-\n\036solutio"
191 "n_feasibility_tolerance\030\026 \001(\001:\0051e-06\022.\n "
192 "provide_strong_optimal_guarantee\030\030 \001(\010:\004"
193 "true\022(\n\032change_status_to_imprecise\030: \001(\010"
194 ":\004true\022)\n\035max_number_of_reoptimizations\030"
195 "8 \001(\001:\00240\022.\n lu_factorization_pivot_thre"
196 "shold\030\031 \001(\001:\0040.01\022 \n\023max_time_in_seconds"
197 "\030\032 \001(\001:\003inf\022#\n\026max_deterministic_time\030- "
198 "\001(\001:\003inf\022$\n\030max_number_of_iterations\030\033 \001"
199 "(\003:\002-1\022%\n\032markowitz_zlatev_parameter\030\035 \001"
200 "(\005:\0013\022.\n\037markowitz_singularity_threshold"
201 "\030\036 \001(\001:\0051e-15\022\037\n\020use_dual_simplex\030\037 \001(\010:"
202 "\005false\022-\n\036allow_simplex_algorithm_change"
203 "\030 \001(\010:\005false\022\'\n\032devex_weights_reset_per"
204 "iod\030! \001(\005:\003150\022\037\n\021use_preprocessing\030\" \001("
205 "\010:\004true\022,\n\036use_middle_product_form_updat"
206 "e\030# \001(\010:\004true\0220\n\"initialize_devex_with_c"
207 "olumn_norms\030$ \001(\010:\004true\0227\n)exploit_singl"
208 "eton_column_in_initial_basis\030% \001(\010:\004true"
209 "\022*\n\032dual_small_pivot_threshold\030& \001(\001:\0060."
210 "0001\022*\n\033preprocessor_zero_tolerance\030\' \001("
211 "\001:\0051e-09\022#\n\025objective_lower_limit\030( \001(\001:"
212 "\004-inf\022\"\n\025objective_upper_limit\030) \001(\001:\003in"
213 "f\022(\n\032degenerate_ministep_factor\030* \001(\001:\0040"
214 ".01\022\026\n\013random_seed\030+ \001(\005:\0011\022\032\n\017num_omp_t"
215 "hreads\030, \001(\005:\0011\022,\n\035perturb_costs_in_dual"
216 "_simplex\0305 \001(\010:\005false\022)\n\032relative_cost_p"
217 "erturbation\0306 \001(\001:\0051e-05\022-\n\036relative_max"
218 "_cost_perturbation\0307 \001(\001:\0051e-07\0221\n\"initi"
219 "al_condition_number_threshold\030; \001(\001:\0051e+"
220 "50\"F\n\020ScalingAlgorithm\022\013\n\007DEFAULT\020\000\022\021\n\rE"
221 "QUILIBRATION\020\001\022\022\n\016LINEAR_PROGRAM\020\002\"D\n\016So"
222 "lverBehavior\022\r\n\tALWAYS_DO\020\000\022\014\n\010NEVER_DO\020"
223 "\001\022\025\n\021LET_SOLVER_DECIDE\020\002\"8\n\013PricingRule\022"
224 "\013\n\007DANTZIG\020\000\022\021\n\rSTEEPEST_EDGE\020\001\022\t\n\005DEVEX"
225 "\020\002\"G\n\025InitialBasisHeuristic\022\010\n\004NONE\020\000\022\t\n"
226 "\005BIXBY\020\001\022\016\n\nTRIANGULAR\020\002\022\t\n\005MAROS\020\003\"y\n\024C"
227 "ostScalingAlgorithm\022\023\n\017NO_COST_SCALING\020\000"
228 "\022\034\n\030CONTAIN_ONE_COST_SCALING\020\001\022\025\n\021MEAN_C"
229 "OST_SCALING\020\002\022\027\n\023MEDIAN_COST_SCALING\020\003"
238 false,
false, descriptor_table_protodef_ortools_2fglop_2fparameters_2eproto,
"ortools/glop/parameters.proto", 2878,
263 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
269 constexpr
int GlopParameters::ScalingAlgorithm_ARRAYSIZE;
270 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
286 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
292 constexpr
int GlopParameters::SolverBehavior_ARRAYSIZE;
293 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
309 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
315 constexpr
int GlopParameters::PricingRule_ARRAYSIZE;
316 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
333 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
340 constexpr
int GlopParameters::InitialBasisHeuristic_ARRAYSIZE;
341 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
358 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
365 constexpr
int GlopParameters::CostScalingAlgorithm_ARRAYSIZE;
366 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
372 using HasBits = decltype(std::declval<GlopParameters>()._has_bits_);
374 (*has_bits)[1] |= 32768u;
377 (*has_bits)[0] |= 8u;
380 (*has_bits)[0] |= 16u;
383 (*has_bits)[0] |= 2048u;
386 (*has_bits)[0] |= 4096u;
389 (*has_bits)[0] |= 32u;
392 (*has_bits)[0] |= 64u;
395 (*has_bits)[0] |= 128u;
398 (*has_bits)[0] |= 256u;
401 (*has_bits)[0] |= 512u;
404 (*has_bits)[0] |= 1024u;
407 (*has_bits)[0] |= 65536u;
410 (*has_bits)[0] |= 131072u;
413 (*has_bits)[0] |= 262144u;
416 (*has_bits)[1] |= 2048u;
419 (*has_bits)[0] |= 8192u;
422 (*has_bits)[1] |= 65536u;
425 (*has_bits)[0] |= 32768u;
428 (*has_bits)[0] |= 16384u;
431 (*has_bits)[0] |= 524288u;
434 (*has_bits)[0] |= 1048576u;
437 (*has_bits)[0] |= 2097152u;
440 (*has_bits)[0] |= 4194304u;
443 (*has_bits)[0] |= 2147483648u;
446 (*has_bits)[1] |= 1u;
449 (*has_bits)[1] |= 16384u;
452 (*has_bits)[0] |= 8388608u;
455 (*has_bits)[0] |= 16777216u;
458 (*has_bits)[1] |= 1024u;
461 (*has_bits)[0] |= 33554432u;
464 (*has_bits)[0] |= 134217728u;
467 (*has_bits)[0] |= 67108864u;
470 (*has_bits)[0] |= 1u;
473 (*has_bits)[0] |= 2u;
476 (*has_bits)[0] |= 268435456u;
479 (*has_bits)[1] |= 2u;
482 (*has_bits)[1] |= 4u;
485 (*has_bits)[0] |= 536870912u;
488 (*has_bits)[0] |= 1073741824u;
491 (*has_bits)[1] |= 8u;
494 (*has_bits)[1] |= 16u;
497 (*has_bits)[1] |= 32u;
500 (*has_bits)[1] |= 64u;
503 (*has_bits)[1] |= 128u;
506 (*has_bits)[1] |= 256u;
509 (*has_bits)[1] |= 512u;
512 (*has_bits)[0] |= 4u;
515 (*has_bits)[1] |= 4096u;
518 (*has_bits)[1] |= 8192u;
521 (*has_bits)[1] |= 131072u;
525 GlopParameters::GlopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
526 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
528 RegisterArenaDtor(arena);
531 GlopParameters::GlopParameters(
const GlopParameters& from)
532 : ::PROTOBUF_NAMESPACE_ID::Message(),
533 _has_bits_(from._has_bits_) {
534 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
535 ::memcpy(&use_dual_simplex_, &from.use_dual_simplex_,
536 static_cast<size_t>(
reinterpret_cast<char*
>(&initial_condition_number_threshold_) -
537 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(initial_condition_number_threshold_));
541 void GlopParameters::SharedCtor() {
542 ::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
543 reinterpret_cast<char*
>(&use_dual_simplex_) -
reinterpret_cast<char*
>(
this)),
544 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&perturb_costs_in_dual_simplex_) -
545 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(perturb_costs_in_dual_simplex_));
546 feasibility_rule_ = 1;
547 optimization_rule_ = 1;
548 refactorization_threshold_ = 1e-09;
549 recompute_reduced_costs_threshold_ = 1e-08;
550 recompute_edges_norm_threshold_ = 100;
551 primal_feasibility_tolerance_ = 1e-08;
552 dual_feasibility_tolerance_ = 1e-08;
553 ratio_test_zero_threshold_ = 1e-09;
554 normalize_using_column_norm_ =
true;
555 use_nested_pricing_ =
true;
557 use_transposed_matrix_ =
true;
559 harris_tolerance_ratio_ = 0.5;
560 small_pivot_threshold_ = 1e-06;
561 minimum_acceptable_pivot_ = 1e-06;
562 basis_refactorization_period_ = 64;
563 solve_dual_problem_ = 2;
564 dualizer_threshold_ = 1.5;
565 solution_feasibility_tolerance_ = 1e-06;
566 lu_factorization_pivot_threshold_ = 0.01;
567 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
568 max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
569 markowitz_singularity_threshold_ = 1e-15;
570 markowitz_zlatev_parameter_ = 3;
571 devex_weights_reset_period_ = 150;
572 initialize_devex_with_column_norms_ =
true;
573 exploit_singleton_column_in_initial_basis_ =
true;
574 provide_strong_optimal_guarantee_ =
true;
575 change_status_to_imprecise_ =
true;
576 use_preprocessing_ =
true;
577 use_middle_product_form_update_ =
true;
578 dual_small_pivot_threshold_ = 0.0001;
579 preprocessor_zero_tolerance_ = 1e-09;
580 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
581 objective_upper_limit_ = std::numeric_limits<double>::infinity();
582 degenerate_ministep_factor_ = 0.01;
584 num_omp_threads_ = 1;
585 max_deterministic_time_ = std::numeric_limits<double>::infinity();
586 drop_tolerance_ = 1e-14;
587 relative_cost_perturbation_ = 1e-05;
588 relative_max_cost_perturbation_ = 1e-07;
589 max_number_of_reoptimizations_ = 40;
592 initial_condition_number_threshold_ = 1e+50;
595 GlopParameters::~GlopParameters() {
598 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
601 void GlopParameters::SharedDtor() {
602 GOOGLE_DCHECK(GetArena() ==
nullptr);
605 void GlopParameters::ArenaDtor(
void*
object) {
606 GlopParameters* _this =
reinterpret_cast< GlopParameters*
>(object);
609 void GlopParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
611 void GlopParameters::SetCachedSize(
int size)
const {
612 _cached_size_.Set(size);
614 const GlopParameters& GlopParameters::default_instance() {
616 return *internal_default_instance();
620 void GlopParameters::Clear() {
624 (void) cached_has_bits;
626 ::memset(&use_dual_simplex_, 0,
static_cast<size_t>(
627 reinterpret_cast<char*
>(&perturb_costs_in_dual_simplex_) -
628 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(perturb_costs_in_dual_simplex_));
629 cached_has_bits = _has_bits_[0];
630 if (cached_has_bits & 0x000000f8u) {
631 feasibility_rule_ = 1;
632 optimization_rule_ = 1;
633 refactorization_threshold_ = 1e-09;
634 recompute_reduced_costs_threshold_ = 1e-08;
635 recompute_edges_norm_threshold_ = 100;
637 if (cached_has_bits & 0x0000ff00u) {
638 primal_feasibility_tolerance_ = 1e-08;
639 dual_feasibility_tolerance_ = 1e-08;
640 ratio_test_zero_threshold_ = 1e-09;
641 normalize_using_column_norm_ =
true;
642 use_nested_pricing_ =
true;
644 use_transposed_matrix_ =
true;
647 if (cached_has_bits & 0x00ff0000u) {
648 harris_tolerance_ratio_ = 0.5;
649 small_pivot_threshold_ = 1e-06;
650 minimum_acceptable_pivot_ = 1e-06;
651 basis_refactorization_period_ = 64;
652 solve_dual_problem_ = 2;
653 dualizer_threshold_ = 1.5;
654 solution_feasibility_tolerance_ = 1e-06;
655 lu_factorization_pivot_threshold_ = 0.01;
657 if (cached_has_bits & 0xff000000u) {
658 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
659 max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
660 markowitz_singularity_threshold_ = 1e-15;
661 markowitz_zlatev_parameter_ = 3;
662 devex_weights_reset_period_ = 150;
663 initialize_devex_with_column_norms_ =
true;
664 exploit_singleton_column_in_initial_basis_ =
true;
665 provide_strong_optimal_guarantee_ =
true;
667 cached_has_bits = _has_bits_[1];
668 if (cached_has_bits & 0x000000ffu) {
669 change_status_to_imprecise_ =
true;
670 use_preprocessing_ =
true;
671 use_middle_product_form_update_ =
true;
672 dual_small_pivot_threshold_ = 0.0001;
673 preprocessor_zero_tolerance_ = 1e-09;
674 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
675 objective_upper_limit_ = std::numeric_limits<double>::infinity();
676 degenerate_ministep_factor_ = 0.01;
678 if (cached_has_bits & 0x0000ff00u) {
680 num_omp_threads_ = 1;
681 max_deterministic_time_ = std::numeric_limits<double>::infinity();
682 drop_tolerance_ = 1e-14;
683 relative_cost_perturbation_ = 1e-05;
684 relative_max_cost_perturbation_ = 1e-07;
685 max_number_of_reoptimizations_ = 40;
688 if (cached_has_bits & 0x00030000u) {
690 initial_condition_number_threshold_ = 1e+50;
693 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
696 const char* GlopParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
697 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
698 while (!ctx->Done(&ptr)) {
700 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
711 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
713 }
else goto handle_unusual;
723 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(2, val, mutable_unknown_fields());
725 }
else goto handle_unusual;
731 normalize_using_column_norm_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
733 }
else goto handle_unusual;
739 use_nested_pricing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
741 }
else goto handle_unusual;
747 refactorization_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
748 ptr +=
sizeof(double);
749 }
else goto handle_unusual;
755 recompute_reduced_costs_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
756 ptr +=
sizeof(double);
757 }
else goto handle_unusual;
763 recompute_edges_norm_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
764 ptr +=
sizeof(double);
765 }
else goto handle_unusual;
771 primal_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
772 ptr +=
sizeof(double);
773 }
else goto handle_unusual;
779 dual_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
780 ptr +=
sizeof(double);
781 }
else goto handle_unusual;
787 ratio_test_zero_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
788 ptr +=
sizeof(double);
789 }
else goto handle_unusual;
795 harris_tolerance_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
796 ptr +=
sizeof(double);
797 }
else goto handle_unusual;
803 small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
804 ptr +=
sizeof(double);
805 }
else goto handle_unusual;
811 minimum_acceptable_pivot_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
812 ptr +=
sizeof(double);
813 }
else goto handle_unusual;
819 use_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
821 }
else goto handle_unusual;
831 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(17, val, mutable_unknown_fields());
833 }
else goto handle_unusual;
839 use_transposed_matrix_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
841 }
else goto handle_unusual;
847 basis_refactorization_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
849 }
else goto handle_unusual;
859 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(20, val, mutable_unknown_fields());
861 }
else goto handle_unusual;
867 dualizer_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
868 ptr +=
sizeof(double);
869 }
else goto handle_unusual;
875 solution_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
876 ptr +=
sizeof(double);
877 }
else goto handle_unusual;
883 provide_strong_optimal_guarantee_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
885 }
else goto handle_unusual;
891 lu_factorization_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
892 ptr +=
sizeof(double);
893 }
else goto handle_unusual;
899 max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
900 ptr +=
sizeof(double);
901 }
else goto handle_unusual;
907 max_number_of_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
909 }
else goto handle_unusual;
915 markowitz_zlatev_parameter_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
917 }
else goto handle_unusual;
923 markowitz_singularity_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
924 ptr +=
sizeof(double);
925 }
else goto handle_unusual;
931 use_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
933 }
else goto handle_unusual;
939 allow_simplex_algorithm_change_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
941 }
else goto handle_unusual;
947 devex_weights_reset_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
949 }
else goto handle_unusual;
955 use_preprocessing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
957 }
else goto handle_unusual;
963 use_middle_product_form_update_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
965 }
else goto handle_unusual;
971 initialize_devex_with_column_norms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
973 }
else goto handle_unusual;
979 exploit_singleton_column_in_initial_basis_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
981 }
else goto handle_unusual;
987 dual_small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
988 ptr +=
sizeof(double);
989 }
else goto handle_unusual;
995 preprocessor_zero_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
996 ptr +=
sizeof(double);
997 }
else goto handle_unusual;
1003 objective_lower_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1004 ptr +=
sizeof(double);
1005 }
else goto handle_unusual;
1011 objective_upper_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1012 ptr +=
sizeof(double);
1013 }
else goto handle_unusual;
1019 degenerate_ministep_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1020 ptr +=
sizeof(double);
1021 }
else goto handle_unusual;
1027 random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1029 }
else goto handle_unusual;
1035 num_omp_threads_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1037 }
else goto handle_unusual;
1043 max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1044 ptr +=
sizeof(double);
1045 }
else goto handle_unusual;
1051 drop_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1052 ptr +=
sizeof(double);
1053 }
else goto handle_unusual;
1059 perturb_costs_in_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1061 }
else goto handle_unusual;
1067 relative_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1068 ptr +=
sizeof(double);
1069 }
else goto handle_unusual;
1075 relative_max_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1076 ptr +=
sizeof(double);
1077 }
else goto handle_unusual;
1083 max_number_of_reoptimizations_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1084 ptr +=
sizeof(double);
1085 }
else goto handle_unusual;
1095 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(57, val, mutable_unknown_fields());
1097 }
else goto handle_unusual;
1103 change_status_to_imprecise_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1105 }
else goto handle_unusual;
1111 initial_condition_number_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1112 ptr +=
sizeof(double);
1113 }
else goto handle_unusual;
1123 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(60, val, mutable_unknown_fields());
1125 }
else goto handle_unusual;
1129 if ((tag & 7) == 4 || tag == 0) {
1130 ctx->SetLastTag(tag);
1133 ptr = UnknownFieldParse(tag,
1134 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1136 CHK_(ptr !=
nullptr);
1153 (void) cached_has_bits;
1155 cached_has_bits = _has_bits_[0];
1157 if (cached_has_bits & 0x00000008u) {
1158 target = stream->EnsureSpace(target);
1159 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1160 1, this->_internal_feasibility_rule(), target);
1164 if (cached_has_bits & 0x00000010u) {
1165 target = stream->EnsureSpace(target);
1166 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1167 2, this->_internal_optimization_rule(), target);
1171 if (cached_has_bits & 0x00000800u) {
1172 target = stream->EnsureSpace(target);
1173 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_normalize_using_column_norm(), target);
1177 if (cached_has_bits & 0x00001000u) {
1178 target = stream->EnsureSpace(target);
1179 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_use_nested_pricing(), target);
1183 if (cached_has_bits & 0x00000020u) {
1184 target = stream->EnsureSpace(target);
1185 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(6, this->_internal_refactorization_threshold(), target);
1189 if (cached_has_bits & 0x00000040u) {
1190 target = stream->EnsureSpace(target);
1191 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(8, this->_internal_recompute_reduced_costs_threshold(), target);
1195 if (cached_has_bits & 0x00000080u) {
1196 target = stream->EnsureSpace(target);
1197 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(9, this->_internal_recompute_edges_norm_threshold(), target);
1201 if (cached_has_bits & 0x00000100u) {
1202 target = stream->EnsureSpace(target);
1203 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(10, this->_internal_primal_feasibility_tolerance(), target);
1207 if (cached_has_bits & 0x00000200u) {
1208 target = stream->EnsureSpace(target);
1209 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(11, this->_internal_dual_feasibility_tolerance(), target);
1213 if (cached_has_bits & 0x00000400u) {
1214 target = stream->EnsureSpace(target);
1215 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(12, this->_internal_ratio_test_zero_threshold(), target);
1219 if (cached_has_bits & 0x00010000u) {
1220 target = stream->EnsureSpace(target);
1221 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(13, this->_internal_harris_tolerance_ratio(), target);
1225 if (cached_has_bits & 0x00020000u) {
1226 target = stream->EnsureSpace(target);
1227 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_small_pivot_threshold(), target);
1231 if (cached_has_bits & 0x00040000u) {
1232 target = stream->EnsureSpace(target);
1233 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_minimum_acceptable_pivot(), target);
1237 if (cached_has_bits & 0x00002000u) {
1238 target = stream->EnsureSpace(target);
1239 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(16, this->_internal_use_scaling(), target);
1243 if (cached_has_bits & 0x00008000u) {
1244 target = stream->EnsureSpace(target);
1245 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1246 17, this->_internal_initial_basis(), target);
1250 if (cached_has_bits & 0x00004000u) {
1251 target = stream->EnsureSpace(target);
1252 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(18, this->_internal_use_transposed_matrix(), target);
1256 if (cached_has_bits & 0x00080000u) {
1257 target = stream->EnsureSpace(target);
1258 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_basis_refactorization_period(), target);
1262 if (cached_has_bits & 0x00100000u) {
1263 target = stream->EnsureSpace(target);
1264 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1265 20, this->_internal_solve_dual_problem(), target);
1269 if (cached_has_bits & 0x00200000u) {
1270 target = stream->EnsureSpace(target);
1271 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_dualizer_threshold(), target);
1275 if (cached_has_bits & 0x00400000u) {
1276 target = stream->EnsureSpace(target);
1277 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_solution_feasibility_tolerance(), target);
1281 if (cached_has_bits & 0x80000000u) {
1282 target = stream->EnsureSpace(target);
1283 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(24, this->_internal_provide_strong_optimal_guarantee(), target);
1287 if (cached_has_bits & 0x00800000u) {
1288 target = stream->EnsureSpace(target);
1289 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(25, this->_internal_lu_factorization_pivot_threshold(), target);
1293 if (cached_has_bits & 0x01000000u) {
1294 target = stream->EnsureSpace(target);
1295 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(26, this->_internal_max_time_in_seconds(), target);
1299 if (cached_has_bits & 0x02000000u) {
1300 target = stream->EnsureSpace(target);
1301 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(27, this->_internal_max_number_of_iterations(), target);
1305 if (cached_has_bits & 0x08000000u) {
1306 target = stream->EnsureSpace(target);
1307 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(29, this->_internal_markowitz_zlatev_parameter(), target);
1311 if (cached_has_bits & 0x04000000u) {
1312 target = stream->EnsureSpace(target);
1313 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(30, this->_internal_markowitz_singularity_threshold(), target);
1317 if (cached_has_bits & 0x00000001u) {
1318 target = stream->EnsureSpace(target);
1319 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(31, this->_internal_use_dual_simplex(), target);
1323 if (cached_has_bits & 0x00000002u) {
1324 target = stream->EnsureSpace(target);
1325 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(32, this->_internal_allow_simplex_algorithm_change(), target);
1329 if (cached_has_bits & 0x10000000u) {
1330 target = stream->EnsureSpace(target);
1331 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(33, this->_internal_devex_weights_reset_period(), target);
1334 cached_has_bits = _has_bits_[1];
1336 if (cached_has_bits & 0x00000002u) {
1337 target = stream->EnsureSpace(target);
1338 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(34, this->_internal_use_preprocessing(), target);
1342 if (cached_has_bits & 0x00000004u) {
1343 target = stream->EnsureSpace(target);
1344 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(35, this->_internal_use_middle_product_form_update(), target);
1347 cached_has_bits = _has_bits_[0];
1349 if (cached_has_bits & 0x20000000u) {
1350 target = stream->EnsureSpace(target);
1351 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(36, this->_internal_initialize_devex_with_column_norms(), target);
1355 if (cached_has_bits & 0x40000000u) {
1356 target = stream->EnsureSpace(target);
1357 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(37, this->_internal_exploit_singleton_column_in_initial_basis(), target);
1360 cached_has_bits = _has_bits_[1];
1362 if (cached_has_bits & 0x00000008u) {
1363 target = stream->EnsureSpace(target);
1364 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_dual_small_pivot_threshold(), target);
1368 if (cached_has_bits & 0x00000010u) {
1369 target = stream->EnsureSpace(target);
1370 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(39, this->_internal_preprocessor_zero_tolerance(), target);
1374 if (cached_has_bits & 0x00000020u) {
1375 target = stream->EnsureSpace(target);
1376 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(40, this->_internal_objective_lower_limit(), target);
1380 if (cached_has_bits & 0x00000040u) {
1381 target = stream->EnsureSpace(target);
1382 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(41, this->_internal_objective_upper_limit(), target);
1386 if (cached_has_bits & 0x00000080u) {
1387 target = stream->EnsureSpace(target);
1388 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_degenerate_ministep_factor(), target);
1392 if (cached_has_bits & 0x00000100u) {
1393 target = stream->EnsureSpace(target);
1394 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(43, this->_internal_random_seed(), target);
1398 if (cached_has_bits & 0x00000200u) {
1399 target = stream->EnsureSpace(target);
1400 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(44, this->_internal_num_omp_threads(), target);
1404 if (cached_has_bits & 0x00000400u) {
1405 target = stream->EnsureSpace(target);
1406 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(45, this->_internal_max_deterministic_time(), target);
1410 if (cached_has_bits & 0x00000800u) {
1411 target = stream->EnsureSpace(target);
1412 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(52, this->_internal_drop_tolerance(), target);
1415 cached_has_bits = _has_bits_[0];
1417 if (cached_has_bits & 0x00000004u) {
1418 target = stream->EnsureSpace(target);
1419 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(53, this->_internal_perturb_costs_in_dual_simplex(), target);
1422 cached_has_bits = _has_bits_[1];
1424 if (cached_has_bits & 0x00001000u) {
1425 target = stream->EnsureSpace(target);
1426 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(54, this->_internal_relative_cost_perturbation(), target);
1430 if (cached_has_bits & 0x00002000u) {
1431 target = stream->EnsureSpace(target);
1432 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(55, this->_internal_relative_max_cost_perturbation(), target);
1436 if (cached_has_bits & 0x00004000u) {
1437 target = stream->EnsureSpace(target);
1438 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(56, this->_internal_max_number_of_reoptimizations(), target);
1442 if (cached_has_bits & 0x00008000u) {
1443 target = stream->EnsureSpace(target);
1444 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1445 57, this->_internal_scaling_method(), target);
1449 if (cached_has_bits & 0x00000001u) {
1450 target = stream->EnsureSpace(target);
1451 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(58, this->_internal_change_status_to_imprecise(), target);
1455 if (cached_has_bits & 0x00020000u) {
1456 target = stream->EnsureSpace(target);
1457 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(59, this->_internal_initial_condition_number_threshold(), target);
1461 if (cached_has_bits & 0x00010000u) {
1462 target = stream->EnsureSpace(target);
1463 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1464 60, this->_internal_cost_scaling(), target);
1467 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1468 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1469 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1475 size_t GlopParameters::ByteSizeLong()
const {
1477 size_t total_size = 0;
1481 (void) cached_has_bits;
1483 cached_has_bits = _has_bits_[0];
1484 if (cached_has_bits & 0x000000ffu) {
1486 if (cached_has_bits & 0x00000001u) {
1487 total_size += 2 + 1;
1491 if (cached_has_bits & 0x00000002u) {
1492 total_size += 2 + 1;
1496 if (cached_has_bits & 0x00000004u) {
1497 total_size += 2 + 1;
1501 if (cached_has_bits & 0x00000008u) {
1503 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_feasibility_rule());
1507 if (cached_has_bits & 0x00000010u) {
1509 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_optimization_rule());
1513 if (cached_has_bits & 0x00000020u) {
1514 total_size += 1 + 8;
1518 if (cached_has_bits & 0x00000040u) {
1519 total_size += 1 + 8;
1523 if (cached_has_bits & 0x00000080u) {
1524 total_size += 1 + 8;
1528 if (cached_has_bits & 0x0000ff00u) {
1530 if (cached_has_bits & 0x00000100u) {
1531 total_size += 1 + 8;
1535 if (cached_has_bits & 0x00000200u) {
1536 total_size += 1 + 8;
1540 if (cached_has_bits & 0x00000400u) {
1541 total_size += 1 + 8;
1545 if (cached_has_bits & 0x00000800u) {
1546 total_size += 1 + 1;
1550 if (cached_has_bits & 0x00001000u) {
1551 total_size += 1 + 1;
1555 if (cached_has_bits & 0x00002000u) {
1556 total_size += 2 + 1;
1560 if (cached_has_bits & 0x00004000u) {
1561 total_size += 2 + 1;
1565 if (cached_has_bits & 0x00008000u) {
1567 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_initial_basis());
1571 if (cached_has_bits & 0x00ff0000u) {
1573 if (cached_has_bits & 0x00010000u) {
1574 total_size += 1 + 8;
1578 if (cached_has_bits & 0x00020000u) {
1579 total_size += 1 + 8;
1583 if (cached_has_bits & 0x00040000u) {
1584 total_size += 1 + 8;
1588 if (cached_has_bits & 0x00080000u) {
1590 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1591 this->_internal_basis_refactorization_period());
1595 if (cached_has_bits & 0x00100000u) {
1597 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_solve_dual_problem());
1601 if (cached_has_bits & 0x00200000u) {
1602 total_size += 2 + 8;
1606 if (cached_has_bits & 0x00400000u) {
1607 total_size += 2 + 8;
1611 if (cached_has_bits & 0x00800000u) {
1612 total_size += 2 + 8;
1616 if (cached_has_bits & 0xff000000u) {
1618 if (cached_has_bits & 0x01000000u) {
1619 total_size += 2 + 8;
1623 if (cached_has_bits & 0x02000000u) {
1625 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1626 this->_internal_max_number_of_iterations());
1630 if (cached_has_bits & 0x04000000u) {
1631 total_size += 2 + 8;
1635 if (cached_has_bits & 0x08000000u) {
1637 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1638 this->_internal_markowitz_zlatev_parameter());
1642 if (cached_has_bits & 0x10000000u) {
1644 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1645 this->_internal_devex_weights_reset_period());
1649 if (cached_has_bits & 0x20000000u) {
1650 total_size += 2 + 1;
1654 if (cached_has_bits & 0x40000000u) {
1655 total_size += 2 + 1;
1659 if (cached_has_bits & 0x80000000u) {
1660 total_size += 2 + 1;
1664 cached_has_bits = _has_bits_[1];
1665 if (cached_has_bits & 0x000000ffu) {
1667 if (cached_has_bits & 0x00000001u) {
1668 total_size += 2 + 1;
1672 if (cached_has_bits & 0x00000002u) {
1673 total_size += 2 + 1;
1677 if (cached_has_bits & 0x00000004u) {
1678 total_size += 2 + 1;
1682 if (cached_has_bits & 0x00000008u) {
1683 total_size += 2 + 8;
1687 if (cached_has_bits & 0x00000010u) {
1688 total_size += 2 + 8;
1692 if (cached_has_bits & 0x00000020u) {
1693 total_size += 2 + 8;
1697 if (cached_has_bits & 0x00000040u) {
1698 total_size += 2 + 8;
1702 if (cached_has_bits & 0x00000080u) {
1703 total_size += 2 + 8;
1707 if (cached_has_bits & 0x0000ff00u) {
1709 if (cached_has_bits & 0x00000100u) {
1711 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1712 this->_internal_random_seed());
1716 if (cached_has_bits & 0x00000200u) {
1718 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1719 this->_internal_num_omp_threads());
1723 if (cached_has_bits & 0x00000400u) {
1724 total_size += 2 + 8;
1728 if (cached_has_bits & 0x00000800u) {
1729 total_size += 2 + 8;
1733 if (cached_has_bits & 0x00001000u) {
1734 total_size += 2 + 8;
1738 if (cached_has_bits & 0x00002000u) {
1739 total_size += 2 + 8;
1743 if (cached_has_bits & 0x00004000u) {
1744 total_size += 2 + 8;
1748 if (cached_has_bits & 0x00008000u) {
1750 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_scaling_method());
1754 if (cached_has_bits & 0x00030000u) {
1756 if (cached_has_bits & 0x00010000u) {
1758 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_cost_scaling());
1762 if (cached_has_bits & 0x00020000u) {
1763 total_size += 2 + 8;
1767 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1768 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1769 _internal_metadata_, total_size, &_cached_size_);
1771 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1772 SetCachedSize(cached_size);
1776 void GlopParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1778 GOOGLE_DCHECK_NE(&from,
this);
1779 const GlopParameters* source =
1780 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GlopParameters>(
1782 if (source ==
nullptr) {
1784 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1791 void GlopParameters::MergeFrom(
const GlopParameters& from) {
1793 GOOGLE_DCHECK_NE(&from,
this);
1794 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1796 (void) cached_has_bits;
1798 cached_has_bits = from._has_bits_[0];
1799 if (cached_has_bits & 0x000000ffu) {
1800 if (cached_has_bits & 0x00000001u) {
1801 use_dual_simplex_ = from.use_dual_simplex_;
1803 if (cached_has_bits & 0x00000002u) {
1804 allow_simplex_algorithm_change_ = from.allow_simplex_algorithm_change_;
1806 if (cached_has_bits & 0x00000004u) {
1807 perturb_costs_in_dual_simplex_ = from.perturb_costs_in_dual_simplex_;
1809 if (cached_has_bits & 0x00000008u) {
1810 feasibility_rule_ = from.feasibility_rule_;
1812 if (cached_has_bits & 0x00000010u) {
1813 optimization_rule_ = from.optimization_rule_;
1815 if (cached_has_bits & 0x00000020u) {
1816 refactorization_threshold_ = from.refactorization_threshold_;
1818 if (cached_has_bits & 0x00000040u) {
1819 recompute_reduced_costs_threshold_ = from.recompute_reduced_costs_threshold_;
1821 if (cached_has_bits & 0x00000080u) {
1822 recompute_edges_norm_threshold_ = from.recompute_edges_norm_threshold_;
1824 _has_bits_[0] |= cached_has_bits;
1826 if (cached_has_bits & 0x0000ff00u) {
1827 if (cached_has_bits & 0x00000100u) {
1828 primal_feasibility_tolerance_ = from.primal_feasibility_tolerance_;
1830 if (cached_has_bits & 0x00000200u) {
1831 dual_feasibility_tolerance_ = from.dual_feasibility_tolerance_;
1833 if (cached_has_bits & 0x00000400u) {
1834 ratio_test_zero_threshold_ = from.ratio_test_zero_threshold_;
1836 if (cached_has_bits & 0x00000800u) {
1837 normalize_using_column_norm_ = from.normalize_using_column_norm_;
1839 if (cached_has_bits & 0x00001000u) {
1840 use_nested_pricing_ = from.use_nested_pricing_;
1842 if (cached_has_bits & 0x00002000u) {
1843 use_scaling_ = from.use_scaling_;
1845 if (cached_has_bits & 0x00004000u) {
1846 use_transposed_matrix_ = from.use_transposed_matrix_;
1848 if (cached_has_bits & 0x00008000u) {
1849 initial_basis_ = from.initial_basis_;
1851 _has_bits_[0] |= cached_has_bits;
1853 if (cached_has_bits & 0x00ff0000u) {
1854 if (cached_has_bits & 0x00010000u) {
1855 harris_tolerance_ratio_ = from.harris_tolerance_ratio_;
1857 if (cached_has_bits & 0x00020000u) {
1858 small_pivot_threshold_ = from.small_pivot_threshold_;
1860 if (cached_has_bits & 0x00040000u) {
1861 minimum_acceptable_pivot_ = from.minimum_acceptable_pivot_;
1863 if (cached_has_bits & 0x00080000u) {
1864 basis_refactorization_period_ = from.basis_refactorization_period_;
1866 if (cached_has_bits & 0x00100000u) {
1867 solve_dual_problem_ = from.solve_dual_problem_;
1869 if (cached_has_bits & 0x00200000u) {
1870 dualizer_threshold_ = from.dualizer_threshold_;
1872 if (cached_has_bits & 0x00400000u) {
1873 solution_feasibility_tolerance_ = from.solution_feasibility_tolerance_;
1875 if (cached_has_bits & 0x00800000u) {
1876 lu_factorization_pivot_threshold_ = from.lu_factorization_pivot_threshold_;
1878 _has_bits_[0] |= cached_has_bits;
1880 if (cached_has_bits & 0xff000000u) {
1881 if (cached_has_bits & 0x01000000u) {
1882 max_time_in_seconds_ = from.max_time_in_seconds_;
1884 if (cached_has_bits & 0x02000000u) {
1885 max_number_of_iterations_ = from.max_number_of_iterations_;
1887 if (cached_has_bits & 0x04000000u) {
1888 markowitz_singularity_threshold_ = from.markowitz_singularity_threshold_;
1890 if (cached_has_bits & 0x08000000u) {
1891 markowitz_zlatev_parameter_ = from.markowitz_zlatev_parameter_;
1893 if (cached_has_bits & 0x10000000u) {
1894 devex_weights_reset_period_ = from.devex_weights_reset_period_;
1896 if (cached_has_bits & 0x20000000u) {
1897 initialize_devex_with_column_norms_ = from.initialize_devex_with_column_norms_;
1899 if (cached_has_bits & 0x40000000u) {
1900 exploit_singleton_column_in_initial_basis_ = from.exploit_singleton_column_in_initial_basis_;
1902 if (cached_has_bits & 0x80000000u) {
1903 provide_strong_optimal_guarantee_ = from.provide_strong_optimal_guarantee_;
1905 _has_bits_[0] |= cached_has_bits;
1907 cached_has_bits = from._has_bits_[1];
1908 if (cached_has_bits & 0x000000ffu) {
1909 if (cached_has_bits & 0x00000001u) {
1910 change_status_to_imprecise_ = from.change_status_to_imprecise_;
1912 if (cached_has_bits & 0x00000002u) {
1913 use_preprocessing_ = from.use_preprocessing_;
1915 if (cached_has_bits & 0x00000004u) {
1916 use_middle_product_form_update_ = from.use_middle_product_form_update_;
1918 if (cached_has_bits & 0x00000008u) {
1919 dual_small_pivot_threshold_ = from.dual_small_pivot_threshold_;
1921 if (cached_has_bits & 0x00000010u) {
1922 preprocessor_zero_tolerance_ = from.preprocessor_zero_tolerance_;
1924 if (cached_has_bits & 0x00000020u) {
1925 objective_lower_limit_ = from.objective_lower_limit_;
1927 if (cached_has_bits & 0x00000040u) {
1928 objective_upper_limit_ = from.objective_upper_limit_;
1930 if (cached_has_bits & 0x00000080u) {
1931 degenerate_ministep_factor_ = from.degenerate_ministep_factor_;
1933 _has_bits_[1] |= cached_has_bits;
1935 if (cached_has_bits & 0x0000ff00u) {
1936 if (cached_has_bits & 0x00000100u) {
1937 random_seed_ = from.random_seed_;
1939 if (cached_has_bits & 0x00000200u) {
1940 num_omp_threads_ = from.num_omp_threads_;
1942 if (cached_has_bits & 0x00000400u) {
1943 max_deterministic_time_ = from.max_deterministic_time_;
1945 if (cached_has_bits & 0x00000800u) {
1946 drop_tolerance_ = from.drop_tolerance_;
1948 if (cached_has_bits & 0x00001000u) {
1949 relative_cost_perturbation_ = from.relative_cost_perturbation_;
1951 if (cached_has_bits & 0x00002000u) {
1952 relative_max_cost_perturbation_ = from.relative_max_cost_perturbation_;
1954 if (cached_has_bits & 0x00004000u) {
1955 max_number_of_reoptimizations_ = from.max_number_of_reoptimizations_;
1957 if (cached_has_bits & 0x00008000u) {
1958 scaling_method_ = from.scaling_method_;
1960 _has_bits_[1] |= cached_has_bits;
1962 if (cached_has_bits & 0x00030000u) {
1963 if (cached_has_bits & 0x00010000u) {
1964 cost_scaling_ = from.cost_scaling_;
1966 if (cached_has_bits & 0x00020000u) {
1967 initial_condition_number_threshold_ = from.initial_condition_number_threshold_;
1969 _has_bits_[1] |= cached_has_bits;
1973 void GlopParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1975 if (&from ==
this)
return;
1980 void GlopParameters::CopyFrom(
const GlopParameters& from) {
1982 if (&from ==
this)
return;
1987 bool GlopParameters::IsInitialized()
const {
1991 void GlopParameters::InternalSwap(GlopParameters* other) {
1993 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1994 swap(_has_bits_[0], other->_has_bits_[0]);
1995 swap(_has_bits_[1], other->_has_bits_[1]);
1996 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1997 PROTOBUF_FIELD_OFFSET(GlopParameters, perturb_costs_in_dual_simplex_)
1998 +
sizeof(GlopParameters::perturb_costs_in_dual_simplex_)
1999 - PROTOBUF_FIELD_OFFSET(GlopParameters, use_dual_simplex_)>(
2000 reinterpret_cast<char*
>(&use_dual_simplex_),
2001 reinterpret_cast<char*
>(&other->use_dual_simplex_));
2002 swap(feasibility_rule_, other->feasibility_rule_);
2003 swap(optimization_rule_, other->optimization_rule_);
2004 swap(refactorization_threshold_, other->refactorization_threshold_);
2005 swap(recompute_reduced_costs_threshold_, other->recompute_reduced_costs_threshold_);
2006 swap(recompute_edges_norm_threshold_, other->recompute_edges_norm_threshold_);
2007 swap(primal_feasibility_tolerance_, other->primal_feasibility_tolerance_);
2008 swap(dual_feasibility_tolerance_, other->dual_feasibility_tolerance_);
2009 swap(ratio_test_zero_threshold_, other->ratio_test_zero_threshold_);
2010 swap(normalize_using_column_norm_, other->normalize_using_column_norm_);
2011 swap(use_nested_pricing_, other->use_nested_pricing_);
2012 swap(use_scaling_, other->use_scaling_);
2013 swap(use_transposed_matrix_, other->use_transposed_matrix_);
2014 swap(initial_basis_, other->initial_basis_);
2015 swap(harris_tolerance_ratio_, other->harris_tolerance_ratio_);
2016 swap(small_pivot_threshold_, other->small_pivot_threshold_);
2017 swap(minimum_acceptable_pivot_, other->minimum_acceptable_pivot_);
2018 swap(basis_refactorization_period_, other->basis_refactorization_period_);
2019 swap(solve_dual_problem_, other->solve_dual_problem_);
2020 swap(dualizer_threshold_, other->dualizer_threshold_);
2021 swap(solution_feasibility_tolerance_, other->solution_feasibility_tolerance_);
2022 swap(lu_factorization_pivot_threshold_, other->lu_factorization_pivot_threshold_);
2023 swap(max_time_in_seconds_, other->max_time_in_seconds_);
2024 swap(max_number_of_iterations_, other->max_number_of_iterations_);
2025 swap(markowitz_singularity_threshold_, other->markowitz_singularity_threshold_);
2026 swap(markowitz_zlatev_parameter_, other->markowitz_zlatev_parameter_);
2027 swap(devex_weights_reset_period_, other->devex_weights_reset_period_);
2028 swap(initialize_devex_with_column_norms_, other->initialize_devex_with_column_norms_);
2029 swap(exploit_singleton_column_in_initial_basis_, other->exploit_singleton_column_in_initial_basis_);
2030 swap(provide_strong_optimal_guarantee_, other->provide_strong_optimal_guarantee_);
2031 swap(change_status_to_imprecise_, other->change_status_to_imprecise_);
2032 swap(use_preprocessing_, other->use_preprocessing_);
2033 swap(use_middle_product_form_update_, other->use_middle_product_form_update_);
2034 swap(dual_small_pivot_threshold_, other->dual_small_pivot_threshold_);
2035 swap(preprocessor_zero_tolerance_, other->preprocessor_zero_tolerance_);
2036 swap(objective_lower_limit_, other->objective_lower_limit_);
2037 swap(objective_upper_limit_, other->objective_upper_limit_);
2038 swap(degenerate_ministep_factor_, other->degenerate_ministep_factor_);
2039 swap(random_seed_, other->random_seed_);
2040 swap(num_omp_threads_, other->num_omp_threads_);
2041 swap(max_deterministic_time_, other->max_deterministic_time_);
2042 swap(drop_tolerance_, other->drop_tolerance_);
2043 swap(relative_cost_perturbation_, other->relative_cost_perturbation_);
2044 swap(relative_max_cost_perturbation_, other->relative_max_cost_perturbation_);
2045 swap(max_number_of_reoptimizations_, other->max_number_of_reoptimizations_);
2046 swap(scaling_method_, other->scaling_method_);
2047 swap(cost_scaling_, other->cost_scaling_);
2048 swap(initial_condition_number_threshold_, other->initial_condition_number_threshold_);
2051 ::PROTOBUF_NAMESPACE_ID::Metadata GlopParameters::GetMetadata()
const {
2052 return GetMetadataStatic();
2059 PROTOBUF_NAMESPACE_OPEN
2061 return Arena::CreateMessageInternal< ::operations_research::glop::GlopParameters >(arena);
2063 PROTOBUF_NAMESPACE_CLOSE
2066 #include <google/protobuf/port_undef.inc>