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();
149 { 0, 54,
sizeof(::operations_research::glop::GlopParameters)},
157 "\n\035ortools/glop/parameters.proto\022\030operati"
158 "ons_research.glop\"\230\024\n\016GlopParameters\022`\n\016"
159 "scaling_method\0309 \001(\01629.operations_resear"
160 "ch.glop.GlopParameters.ScalingAlgorithm:"
161 "\rEQUILIBRATION\022]\n\020feasibility_rule\030\001 \001(\016"
162 "24.operations_research.glop.GlopParamete"
163 "rs.PricingRule:\rSTEEPEST_EDGE\022^\n\021optimiz"
164 "ation_rule\030\002 \001(\01624.operations_research.g"
165 "lop.GlopParameters.PricingRule:\rSTEEPEST"
166 "_EDGE\022)\n\033normalize_using_column_norm\030\004 \001"
167 "(\010:\004true\022 \n\022use_nested_pricing\030\005 \001(\010:\004tr"
168 "ue\022(\n\031refactorization_threshold\030\006 \001(\001:\0051"
169 "e-09\0220\n!recompute_reduced_costs_threshol"
170 "d\030\010 \001(\001:\0051e-08\022+\n\036recompute_edges_norm_t"
171 "hreshold\030\t \001(\001:\003100\022+\n\034primal_feasibilit"
172 "y_tolerance\030\n \001(\001:\0051e-08\022)\n\032dual_feasibi"
173 "lity_tolerance\030\013 \001(\001:\0051e-08\022(\n\031ratio_tes"
174 "t_zero_threshold\030\014 \001(\001:\0051e-09\022#\n\026harris_"
175 "tolerance_ratio\030\r \001(\001:\0030.5\022$\n\025small_pivo"
176 "t_threshold\030\016 \001(\001:\0051e-06\022\'\n\030minimum_acce"
177 "ptable_pivot\030\017 \001(\001:\0051e-06\022\035\n\016drop_tolera"
178 "nce\0304 \001(\001:\0051e-14\022\031\n\013use_scaling\030\020 \001(\010:\004t"
179 "rue\022a\n\rinitial_basis\030\021 \001(\0162>.operations_"
180 "research.glop.GlopParameters.InitialBasi"
181 "sHeuristic:\nTRIANGULAR\022#\n\025use_transposed"
182 "_matrix\030\022 \001(\010:\004true\022(\n\034basis_refactoriza"
183 "tion_period\030\023 \001(\005:\00264\022f\n\022solve_dual_prob"
184 "lem\030\024 \001(\01627.operations_research.glop.Glo"
185 "pParameters.SolverBehavior:\021LET_SOLVER_D"
186 "ECIDE\022\037\n\022dualizer_threshold\030\025 \001(\001:\0031.5\022-"
187 "\n\036solution_feasibility_tolerance\030\026 \001(\001:\005"
188 "1e-06\022.\n provide_strong_optimal_guarante"
189 "e\030\030 \001(\010:\004true\022(\n\032change_status_to_imprec"
190 "ise\030: \001(\010:\004true\022)\n\035max_number_of_reoptim"
191 "izations\0308 \001(\001:\00240\022.\n lu_factorization_p"
192 "ivot_threshold\030\031 \001(\001:\0040.01\022 \n\023max_time_i"
193 "n_seconds\030\032 \001(\001:\003inf\022#\n\026max_deterministi"
194 "c_time\030- \001(\001:\003inf\022$\n\030max_number_of_itera"
195 "tions\030\033 \001(\003:\002-1\022%\n\032markowitz_zlatev_para"
196 "meter\030\035 \001(\005:\0013\022.\n\037markowitz_singularity_"
197 "threshold\030\036 \001(\001:\0051e-15\022\037\n\020use_dual_simpl"
198 "ex\030\037 \001(\010:\005false\022-\n\036allow_simplex_algorit"
199 "hm_change\030 \001(\010:\005false\022\'\n\032devex_weights_"
200 "reset_period\030! \001(\005:\003150\022\037\n\021use_preproces"
201 "sing\030\" \001(\010:\004true\022,\n\036use_middle_product_f"
202 "orm_update\030# \001(\010:\004true\0220\n\"initialize_dev"
203 "ex_with_column_norms\030$ \001(\010:\004true\0227\n)expl"
204 "oit_singleton_column_in_initial_basis\030% "
205 "\001(\010:\004true\022*\n\032dual_small_pivot_threshold\030"
206 "& \001(\001:\0060.0001\022*\n\033preprocessor_zero_toler"
207 "ance\030\' \001(\001:\0051e-09\022#\n\025objective_lower_lim"
208 "it\030( \001(\001:\004-inf\022\"\n\025objective_upper_limit\030"
209 ") \001(\001:\003inf\022(\n\032degenerate_ministep_factor"
210 "\030* \001(\001:\0040.01\022\026\n\013random_seed\030+ \001(\005:\0011\022\032\n\017"
211 "num_omp_threads\030, \001(\005:\0011\022,\n\035perturb_cost"
212 "s_in_dual_simplex\0305 \001(\010:\005false\022)\n\032relati"
213 "ve_cost_perturbation\0306 \001(\001:\0051e-05\022-\n\036rel"
214 "ative_max_cost_perturbation\0307 \001(\001:\0051e-07"
215 "\0221\n\"initial_condition_number_threshold\030;"
216 " \001(\001:\0051e+50\"F\n\020ScalingAlgorithm\022\013\n\007DEFAU"
217 "LT\020\000\022\021\n\rEQUILIBRATION\020\001\022\022\n\016LINEAR_PROGRA"
218 "M\020\002\"D\n\016SolverBehavior\022\r\n\tALWAYS_DO\020\000\022\014\n\010"
219 "NEVER_DO\020\001\022\025\n\021LET_SOLVER_DECIDE\020\002\"8\n\013Pri"
220 "cingRule\022\013\n\007DANTZIG\020\000\022\021\n\rSTEEPEST_EDGE\020\001"
221 "\022\t\n\005DEVEX\020\002\"G\n\025InitialBasisHeuristic\022\010\n\004"
222 "NONE\020\000\022\t\n\005BIXBY\020\001\022\016\n\nTRIANGULAR\020\002\022\t\n\005MAR"
232 false,
false, descriptor_table_protodef_ortools_2fglop_2fparameters_2eproto,
"ortools/glop/parameters.proto", 2644,
257 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
263 constexpr
int GlopParameters::ScalingAlgorithm_ARRAYSIZE;
264 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
280 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
286 constexpr
int GlopParameters::SolverBehavior_ARRAYSIZE;
287 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
303 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
309 constexpr
int GlopParameters::PricingRule_ARRAYSIZE;
310 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
327 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
334 constexpr
int GlopParameters::InitialBasisHeuristic_ARRAYSIZE;
335 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
339 void GlopParameters::InitAsDefaultInstance() {
343 using HasBits = decltype(std::declval<GlopParameters>()._has_bits_);
345 (*has_bits)[0] |= 8u;
348 (*has_bits)[0] |= 16u;
351 (*has_bits)[0] |= 32u;
354 (*has_bits)[0] |= 4096u;
357 (*has_bits)[0] |= 8192u;
360 (*has_bits)[0] |= 64u;
363 (*has_bits)[0] |= 128u;
366 (*has_bits)[0] |= 256u;
369 (*has_bits)[0] |= 512u;
372 (*has_bits)[0] |= 1024u;
375 (*has_bits)[0] |= 2048u;
378 (*has_bits)[0] |= 131072u;
381 (*has_bits)[0] |= 262144u;
384 (*has_bits)[0] |= 524288u;
387 (*has_bits)[1] |= 4096u;
390 (*has_bits)[0] |= 16384u;
393 (*has_bits)[0] |= 65536u;
396 (*has_bits)[0] |= 32768u;
399 (*has_bits)[0] |= 1048576u;
402 (*has_bits)[0] |= 2097152u;
405 (*has_bits)[0] |= 4194304u;
408 (*has_bits)[0] |= 8388608u;
411 (*has_bits)[1] |= 1u;
414 (*has_bits)[1] |= 2u;
417 (*has_bits)[1] |= 32768u;
420 (*has_bits)[0] |= 16777216u;
423 (*has_bits)[0] |= 33554432u;
426 (*has_bits)[1] |= 2048u;
429 (*has_bits)[0] |= 67108864u;
432 (*has_bits)[0] |= 268435456u;
435 (*has_bits)[0] |= 134217728u;
438 (*has_bits)[0] |= 1u;
441 (*has_bits)[0] |= 2u;
444 (*has_bits)[0] |= 536870912u;
447 (*has_bits)[1] |= 4u;
450 (*has_bits)[1] |= 8u;
453 (*has_bits)[0] |= 1073741824u;
456 (*has_bits)[0] |= 2147483648u;
459 (*has_bits)[1] |= 16u;
462 (*has_bits)[1] |= 32u;
465 (*has_bits)[1] |= 64u;
468 (*has_bits)[1] |= 128u;
471 (*has_bits)[1] |= 256u;
474 (*has_bits)[1] |= 512u;
477 (*has_bits)[1] |= 1024u;
480 (*has_bits)[0] |= 4u;
483 (*has_bits)[1] |= 8192u;
486 (*has_bits)[1] |= 16384u;
489 (*has_bits)[1] |= 65536u;
493 GlopParameters::GlopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
494 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
496 RegisterArenaDtor(arena);
499 GlopParameters::GlopParameters(
const GlopParameters& from)
500 : ::PROTOBUF_NAMESPACE_ID::Message(),
501 _has_bits_(from._has_bits_) {
502 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
503 ::memcpy(&use_dual_simplex_, &from.use_dual_simplex_,
504 static_cast<size_t>(
reinterpret_cast<char*
>(&initial_condition_number_threshold_) -
505 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(initial_condition_number_threshold_));
509 void GlopParameters::SharedCtor() {
510 ::memset(&use_dual_simplex_, 0,
static_cast<size_t>(
511 reinterpret_cast<char*
>(&perturb_costs_in_dual_simplex_) -
512 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(perturb_costs_in_dual_simplex_));
514 feasibility_rule_ = 1;
515 optimization_rule_ = 1;
516 refactorization_threshold_ = 1e-09;
517 recompute_reduced_costs_threshold_ = 1e-08;
518 recompute_edges_norm_threshold_ = 100;
519 primal_feasibility_tolerance_ = 1e-08;
520 dual_feasibility_tolerance_ = 1e-08;
521 ratio_test_zero_threshold_ = 1e-09;
522 normalize_using_column_norm_ =
true;
523 use_nested_pricing_ =
true;
525 use_transposed_matrix_ =
true;
527 harris_tolerance_ratio_ = 0.5;
528 small_pivot_threshold_ = 1e-06;
529 minimum_acceptable_pivot_ = 1e-06;
530 basis_refactorization_period_ = 64;
531 solve_dual_problem_ = 2;
532 dualizer_threshold_ = 1.5;
533 solution_feasibility_tolerance_ = 1e-06;
534 lu_factorization_pivot_threshold_ = 0.01;
535 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
536 max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
537 markowitz_singularity_threshold_ = 1e-15;
538 markowitz_zlatev_parameter_ = 3;
539 devex_weights_reset_period_ = 150;
540 initialize_devex_with_column_norms_ =
true;
541 exploit_singleton_column_in_initial_basis_ =
true;
542 provide_strong_optimal_guarantee_ =
true;
543 change_status_to_imprecise_ =
true;
544 use_preprocessing_ =
true;
545 use_middle_product_form_update_ =
true;
546 dual_small_pivot_threshold_ = 0.0001;
547 preprocessor_zero_tolerance_ = 1e-09;
548 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
549 objective_upper_limit_ = std::numeric_limits<double>::infinity();
550 degenerate_ministep_factor_ = 0.01;
552 num_omp_threads_ = 1;
553 max_deterministic_time_ = std::numeric_limits<double>::infinity();
554 drop_tolerance_ = 1e-14;
555 relative_cost_perturbation_ = 1e-05;
556 relative_max_cost_perturbation_ = 1e-07;
557 max_number_of_reoptimizations_ = 40;
558 initial_condition_number_threshold_ = 1e+50;
561 GlopParameters::~GlopParameters() {
564 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
567 void GlopParameters::SharedDtor() {
568 GOOGLE_DCHECK(GetArena() ==
nullptr);
571 void GlopParameters::ArenaDtor(
void*
object) {
572 GlopParameters* _this =
reinterpret_cast< GlopParameters*
>(object);
575 void GlopParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
577 void GlopParameters::SetCachedSize(
int size)
const {
578 _cached_size_.Set(size);
580 const GlopParameters& GlopParameters::default_instance() {
582 return *internal_default_instance();
586 void GlopParameters::Clear() {
590 (void) cached_has_bits;
592 ::memset(&use_dual_simplex_, 0,
static_cast<size_t>(
593 reinterpret_cast<char*
>(&perturb_costs_in_dual_simplex_) -
594 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(perturb_costs_in_dual_simplex_));
595 cached_has_bits = _has_bits_[0];
596 if (cached_has_bits & 0x000000f8u) {
598 feasibility_rule_ = 1;
599 optimization_rule_ = 1;
600 refactorization_threshold_ = 1e-09;
601 recompute_reduced_costs_threshold_ = 1e-08;
603 if (cached_has_bits & 0x0000ff00u) {
604 recompute_edges_norm_threshold_ = 100;
605 primal_feasibility_tolerance_ = 1e-08;
606 dual_feasibility_tolerance_ = 1e-08;
607 ratio_test_zero_threshold_ = 1e-09;
608 normalize_using_column_norm_ =
true;
609 use_nested_pricing_ =
true;
611 use_transposed_matrix_ =
true;
613 if (cached_has_bits & 0x00ff0000u) {
615 harris_tolerance_ratio_ = 0.5;
616 small_pivot_threshold_ = 1e-06;
617 minimum_acceptable_pivot_ = 1e-06;
618 basis_refactorization_period_ = 64;
619 solve_dual_problem_ = 2;
620 dualizer_threshold_ = 1.5;
621 solution_feasibility_tolerance_ = 1e-06;
623 if (cached_has_bits & 0xff000000u) {
624 lu_factorization_pivot_threshold_ = 0.01;
625 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
626 max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
627 markowitz_singularity_threshold_ = 1e-15;
628 markowitz_zlatev_parameter_ = 3;
629 devex_weights_reset_period_ = 150;
630 initialize_devex_with_column_norms_ =
true;
631 exploit_singleton_column_in_initial_basis_ =
true;
633 cached_has_bits = _has_bits_[1];
634 if (cached_has_bits & 0x000000ffu) {
635 provide_strong_optimal_guarantee_ =
true;
636 change_status_to_imprecise_ =
true;
637 use_preprocessing_ =
true;
638 use_middle_product_form_update_ =
true;
639 dual_small_pivot_threshold_ = 0.0001;
640 preprocessor_zero_tolerance_ = 1e-09;
641 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
642 objective_upper_limit_ = std::numeric_limits<double>::infinity();
644 if (cached_has_bits & 0x0000ff00u) {
645 degenerate_ministep_factor_ = 0.01;
647 num_omp_threads_ = 1;
648 max_deterministic_time_ = std::numeric_limits<double>::infinity();
649 drop_tolerance_ = 1e-14;
650 relative_cost_perturbation_ = 1e-05;
651 relative_max_cost_perturbation_ = 1e-07;
652 max_number_of_reoptimizations_ = 40;
654 initial_condition_number_threshold_ = 1e+50;
656 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
659 const char* GlopParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
660 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
661 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
662 while (!ctx->Done(&ptr)) {
664 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
675 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
677 }
else goto handle_unusual;
687 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(2, val, mutable_unknown_fields());
689 }
else goto handle_unusual;
695 normalize_using_column_norm_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
697 }
else goto handle_unusual;
703 use_nested_pricing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
705 }
else goto handle_unusual;
711 refactorization_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
712 ptr +=
sizeof(double);
713 }
else goto handle_unusual;
719 recompute_reduced_costs_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
720 ptr +=
sizeof(double);
721 }
else goto handle_unusual;
727 recompute_edges_norm_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
728 ptr +=
sizeof(double);
729 }
else goto handle_unusual;
735 primal_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
736 ptr +=
sizeof(double);
737 }
else goto handle_unusual;
743 dual_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
744 ptr +=
sizeof(double);
745 }
else goto handle_unusual;
751 ratio_test_zero_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
752 ptr +=
sizeof(double);
753 }
else goto handle_unusual;
759 harris_tolerance_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
760 ptr +=
sizeof(double);
761 }
else goto handle_unusual;
767 small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
768 ptr +=
sizeof(double);
769 }
else goto handle_unusual;
775 minimum_acceptable_pivot_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
776 ptr +=
sizeof(double);
777 }
else goto handle_unusual;
783 use_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
785 }
else goto handle_unusual;
795 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(17, val, mutable_unknown_fields());
797 }
else goto handle_unusual;
803 use_transposed_matrix_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
805 }
else goto handle_unusual;
811 basis_refactorization_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
813 }
else goto handle_unusual;
823 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(20, val, mutable_unknown_fields());
825 }
else goto handle_unusual;
831 dualizer_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
832 ptr +=
sizeof(double);
833 }
else goto handle_unusual;
839 solution_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
840 ptr +=
sizeof(double);
841 }
else goto handle_unusual;
847 provide_strong_optimal_guarantee_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
849 }
else goto handle_unusual;
855 lu_factorization_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
856 ptr +=
sizeof(double);
857 }
else goto handle_unusual;
863 max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
864 ptr +=
sizeof(double);
865 }
else goto handle_unusual;
871 max_number_of_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
873 }
else goto handle_unusual;
879 markowitz_zlatev_parameter_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
881 }
else goto handle_unusual;
887 markowitz_singularity_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
888 ptr +=
sizeof(double);
889 }
else goto handle_unusual;
895 use_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
897 }
else goto handle_unusual;
903 allow_simplex_algorithm_change_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
905 }
else goto handle_unusual;
911 devex_weights_reset_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
913 }
else goto handle_unusual;
919 use_preprocessing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
921 }
else goto handle_unusual;
927 use_middle_product_form_update_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
929 }
else goto handle_unusual;
935 initialize_devex_with_column_norms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
937 }
else goto handle_unusual;
943 exploit_singleton_column_in_initial_basis_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
945 }
else goto handle_unusual;
951 dual_small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
952 ptr +=
sizeof(double);
953 }
else goto handle_unusual;
959 preprocessor_zero_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
960 ptr +=
sizeof(double);
961 }
else goto handle_unusual;
967 objective_lower_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
968 ptr +=
sizeof(double);
969 }
else goto handle_unusual;
975 objective_upper_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
976 ptr +=
sizeof(double);
977 }
else goto handle_unusual;
983 degenerate_ministep_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
984 ptr +=
sizeof(double);
985 }
else goto handle_unusual;
991 random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
993 }
else goto handle_unusual;
999 num_omp_threads_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1001 }
else goto handle_unusual;
1007 max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1008 ptr +=
sizeof(double);
1009 }
else goto handle_unusual;
1015 drop_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1016 ptr +=
sizeof(double);
1017 }
else goto handle_unusual;
1023 perturb_costs_in_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1025 }
else goto handle_unusual;
1031 relative_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1032 ptr +=
sizeof(double);
1033 }
else goto handle_unusual;
1039 relative_max_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1040 ptr +=
sizeof(double);
1041 }
else goto handle_unusual;
1047 max_number_of_reoptimizations_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1048 ptr +=
sizeof(double);
1049 }
else goto handle_unusual;
1059 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(57, val, mutable_unknown_fields());
1061 }
else goto handle_unusual;
1067 change_status_to_imprecise_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1069 }
else goto handle_unusual;
1075 initial_condition_number_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1076 ptr +=
sizeof(double);
1077 }
else goto handle_unusual;
1081 if ((tag & 7) == 4 || tag == 0) {
1082 ctx->SetLastTag(tag);
1085 ptr = UnknownFieldParse(tag,
1086 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1088 CHK_(ptr !=
nullptr);
1105 (void) cached_has_bits;
1107 cached_has_bits = _has_bits_[0];
1109 if (cached_has_bits & 0x00000010u) {
1110 target = stream->EnsureSpace(target);
1111 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1112 1, this->_internal_feasibility_rule(), target);
1116 if (cached_has_bits & 0x00000020u) {
1117 target = stream->EnsureSpace(target);
1118 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1119 2, this->_internal_optimization_rule(), target);
1123 if (cached_has_bits & 0x00001000u) {
1124 target = stream->EnsureSpace(target);
1125 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_normalize_using_column_norm(), target);
1129 if (cached_has_bits & 0x00002000u) {
1130 target = stream->EnsureSpace(target);
1131 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_use_nested_pricing(), target);
1135 if (cached_has_bits & 0x00000040u) {
1136 target = stream->EnsureSpace(target);
1137 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(6, this->_internal_refactorization_threshold(), target);
1141 if (cached_has_bits & 0x00000080u) {
1142 target = stream->EnsureSpace(target);
1143 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(8, this->_internal_recompute_reduced_costs_threshold(), target);
1147 if (cached_has_bits & 0x00000100u) {
1148 target = stream->EnsureSpace(target);
1149 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(9, this->_internal_recompute_edges_norm_threshold(), target);
1153 if (cached_has_bits & 0x00000200u) {
1154 target = stream->EnsureSpace(target);
1155 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(10, this->_internal_primal_feasibility_tolerance(), target);
1159 if (cached_has_bits & 0x00000400u) {
1160 target = stream->EnsureSpace(target);
1161 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(11, this->_internal_dual_feasibility_tolerance(), target);
1165 if (cached_has_bits & 0x00000800u) {
1166 target = stream->EnsureSpace(target);
1167 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(12, this->_internal_ratio_test_zero_threshold(), target);
1171 if (cached_has_bits & 0x00020000u) {
1172 target = stream->EnsureSpace(target);
1173 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(13, this->_internal_harris_tolerance_ratio(), target);
1177 if (cached_has_bits & 0x00040000u) {
1178 target = stream->EnsureSpace(target);
1179 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_small_pivot_threshold(), target);
1183 if (cached_has_bits & 0x00080000u) {
1184 target = stream->EnsureSpace(target);
1185 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_minimum_acceptable_pivot(), target);
1189 if (cached_has_bits & 0x00004000u) {
1190 target = stream->EnsureSpace(target);
1191 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(16, this->_internal_use_scaling(), target);
1195 if (cached_has_bits & 0x00010000u) {
1196 target = stream->EnsureSpace(target);
1197 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1198 17, this->_internal_initial_basis(), target);
1202 if (cached_has_bits & 0x00008000u) {
1203 target = stream->EnsureSpace(target);
1204 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(18, this->_internal_use_transposed_matrix(), target);
1208 if (cached_has_bits & 0x00100000u) {
1209 target = stream->EnsureSpace(target);
1210 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_basis_refactorization_period(), target);
1214 if (cached_has_bits & 0x00200000u) {
1215 target = stream->EnsureSpace(target);
1216 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1217 20, this->_internal_solve_dual_problem(), target);
1221 if (cached_has_bits & 0x00400000u) {
1222 target = stream->EnsureSpace(target);
1223 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_dualizer_threshold(), target);
1227 if (cached_has_bits & 0x00800000u) {
1228 target = stream->EnsureSpace(target);
1229 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_solution_feasibility_tolerance(), target);
1232 cached_has_bits = _has_bits_[1];
1234 if (cached_has_bits & 0x00000001u) {
1235 target = stream->EnsureSpace(target);
1236 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(24, this->_internal_provide_strong_optimal_guarantee(), target);
1239 cached_has_bits = _has_bits_[0];
1241 if (cached_has_bits & 0x01000000u) {
1242 target = stream->EnsureSpace(target);
1243 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(25, this->_internal_lu_factorization_pivot_threshold(), target);
1247 if (cached_has_bits & 0x02000000u) {
1248 target = stream->EnsureSpace(target);
1249 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(26, this->_internal_max_time_in_seconds(), target);
1253 if (cached_has_bits & 0x04000000u) {
1254 target = stream->EnsureSpace(target);
1255 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(27, this->_internal_max_number_of_iterations(), target);
1259 if (cached_has_bits & 0x10000000u) {
1260 target = stream->EnsureSpace(target);
1261 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(29, this->_internal_markowitz_zlatev_parameter(), target);
1265 if (cached_has_bits & 0x08000000u) {
1266 target = stream->EnsureSpace(target);
1267 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(30, this->_internal_markowitz_singularity_threshold(), target);
1271 if (cached_has_bits & 0x00000001u) {
1272 target = stream->EnsureSpace(target);
1273 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(31, this->_internal_use_dual_simplex(), target);
1277 if (cached_has_bits & 0x00000002u) {
1278 target = stream->EnsureSpace(target);
1279 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(32, this->_internal_allow_simplex_algorithm_change(), target);
1283 if (cached_has_bits & 0x20000000u) {
1284 target = stream->EnsureSpace(target);
1285 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(33, this->_internal_devex_weights_reset_period(), target);
1288 cached_has_bits = _has_bits_[1];
1290 if (cached_has_bits & 0x00000004u) {
1291 target = stream->EnsureSpace(target);
1292 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(34, this->_internal_use_preprocessing(), target);
1296 if (cached_has_bits & 0x00000008u) {
1297 target = stream->EnsureSpace(target);
1298 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(35, this->_internal_use_middle_product_form_update(), target);
1301 cached_has_bits = _has_bits_[0];
1303 if (cached_has_bits & 0x40000000u) {
1304 target = stream->EnsureSpace(target);
1305 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(36, this->_internal_initialize_devex_with_column_norms(), target);
1309 if (cached_has_bits & 0x80000000u) {
1310 target = stream->EnsureSpace(target);
1311 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(37, this->_internal_exploit_singleton_column_in_initial_basis(), target);
1314 cached_has_bits = _has_bits_[1];
1316 if (cached_has_bits & 0x00000010u) {
1317 target = stream->EnsureSpace(target);
1318 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_dual_small_pivot_threshold(), target);
1322 if (cached_has_bits & 0x00000020u) {
1323 target = stream->EnsureSpace(target);
1324 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(39, this->_internal_preprocessor_zero_tolerance(), target);
1328 if (cached_has_bits & 0x00000040u) {
1329 target = stream->EnsureSpace(target);
1330 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(40, this->_internal_objective_lower_limit(), target);
1334 if (cached_has_bits & 0x00000080u) {
1335 target = stream->EnsureSpace(target);
1336 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(41, this->_internal_objective_upper_limit(), target);
1340 if (cached_has_bits & 0x00000100u) {
1341 target = stream->EnsureSpace(target);
1342 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_degenerate_ministep_factor(), target);
1346 if (cached_has_bits & 0x00000200u) {
1347 target = stream->EnsureSpace(target);
1348 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(43, this->_internal_random_seed(), target);
1352 if (cached_has_bits & 0x00000400u) {
1353 target = stream->EnsureSpace(target);
1354 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(44, this->_internal_num_omp_threads(), target);
1358 if (cached_has_bits & 0x00000800u) {
1359 target = stream->EnsureSpace(target);
1360 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(45, this->_internal_max_deterministic_time(), target);
1364 if (cached_has_bits & 0x00001000u) {
1365 target = stream->EnsureSpace(target);
1366 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(52, this->_internal_drop_tolerance(), target);
1369 cached_has_bits = _has_bits_[0];
1371 if (cached_has_bits & 0x00000004u) {
1372 target = stream->EnsureSpace(target);
1373 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(53, this->_internal_perturb_costs_in_dual_simplex(), target);
1376 cached_has_bits = _has_bits_[1];
1378 if (cached_has_bits & 0x00002000u) {
1379 target = stream->EnsureSpace(target);
1380 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(54, this->_internal_relative_cost_perturbation(), target);
1384 if (cached_has_bits & 0x00004000u) {
1385 target = stream->EnsureSpace(target);
1386 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(55, this->_internal_relative_max_cost_perturbation(), target);
1390 if (cached_has_bits & 0x00008000u) {
1391 target = stream->EnsureSpace(target);
1392 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(56, this->_internal_max_number_of_reoptimizations(), target);
1395 cached_has_bits = _has_bits_[0];
1397 if (cached_has_bits & 0x00000008u) {
1398 target = stream->EnsureSpace(target);
1399 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1400 57, this->_internal_scaling_method(), target);
1403 cached_has_bits = _has_bits_[1];
1405 if (cached_has_bits & 0x00000002u) {
1406 target = stream->EnsureSpace(target);
1407 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(58, this->_internal_change_status_to_imprecise(), target);
1411 if (cached_has_bits & 0x00010000u) {
1412 target = stream->EnsureSpace(target);
1413 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(59, this->_internal_initial_condition_number_threshold(), target);
1416 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1417 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1418 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1424 size_t GlopParameters::ByteSizeLong()
const {
1426 size_t total_size = 0;
1430 (void) cached_has_bits;
1432 cached_has_bits = _has_bits_[0];
1433 if (cached_has_bits & 0x000000ffu) {
1435 if (cached_has_bits & 0x00000001u) {
1436 total_size += 2 + 1;
1440 if (cached_has_bits & 0x00000002u) {
1441 total_size += 2 + 1;
1445 if (cached_has_bits & 0x00000004u) {
1446 total_size += 2 + 1;
1450 if (cached_has_bits & 0x00000008u) {
1452 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_scaling_method());
1456 if (cached_has_bits & 0x00000010u) {
1458 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_feasibility_rule());
1462 if (cached_has_bits & 0x00000020u) {
1464 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_optimization_rule());
1468 if (cached_has_bits & 0x00000040u) {
1469 total_size += 1 + 8;
1473 if (cached_has_bits & 0x00000080u) {
1474 total_size += 1 + 8;
1478 if (cached_has_bits & 0x0000ff00u) {
1480 if (cached_has_bits & 0x00000100u) {
1481 total_size += 1 + 8;
1485 if (cached_has_bits & 0x00000200u) {
1486 total_size += 1 + 8;
1490 if (cached_has_bits & 0x00000400u) {
1491 total_size += 1 + 8;
1495 if (cached_has_bits & 0x00000800u) {
1496 total_size += 1 + 8;
1500 if (cached_has_bits & 0x00001000u) {
1501 total_size += 1 + 1;
1505 if (cached_has_bits & 0x00002000u) {
1506 total_size += 1 + 1;
1510 if (cached_has_bits & 0x00004000u) {
1511 total_size += 2 + 1;
1515 if (cached_has_bits & 0x00008000u) {
1516 total_size += 2 + 1;
1520 if (cached_has_bits & 0x00ff0000u) {
1522 if (cached_has_bits & 0x00010000u) {
1524 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_initial_basis());
1528 if (cached_has_bits & 0x00020000u) {
1529 total_size += 1 + 8;
1533 if (cached_has_bits & 0x00040000u) {
1534 total_size += 1 + 8;
1538 if (cached_has_bits & 0x00080000u) {
1539 total_size += 1 + 8;
1543 if (cached_has_bits & 0x00100000u) {
1545 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1546 this->_internal_basis_refactorization_period());
1550 if (cached_has_bits & 0x00200000u) {
1552 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_solve_dual_problem());
1556 if (cached_has_bits & 0x00400000u) {
1557 total_size += 2 + 8;
1561 if (cached_has_bits & 0x00800000u) {
1562 total_size += 2 + 8;
1566 if (cached_has_bits & 0xff000000u) {
1568 if (cached_has_bits & 0x01000000u) {
1569 total_size += 2 + 8;
1573 if (cached_has_bits & 0x02000000u) {
1574 total_size += 2 + 8;
1578 if (cached_has_bits & 0x04000000u) {
1580 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1581 this->_internal_max_number_of_iterations());
1585 if (cached_has_bits & 0x08000000u) {
1586 total_size += 2 + 8;
1590 if (cached_has_bits & 0x10000000u) {
1592 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1593 this->_internal_markowitz_zlatev_parameter());
1597 if (cached_has_bits & 0x20000000u) {
1599 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1600 this->_internal_devex_weights_reset_period());
1604 if (cached_has_bits & 0x40000000u) {
1605 total_size += 2 + 1;
1609 if (cached_has_bits & 0x80000000u) {
1610 total_size += 2 + 1;
1614 cached_has_bits = _has_bits_[1];
1615 if (cached_has_bits & 0x000000ffu) {
1617 if (cached_has_bits & 0x00000001u) {
1618 total_size += 2 + 1;
1622 if (cached_has_bits & 0x00000002u) {
1623 total_size += 2 + 1;
1627 if (cached_has_bits & 0x00000004u) {
1628 total_size += 2 + 1;
1632 if (cached_has_bits & 0x00000008u) {
1633 total_size += 2 + 1;
1637 if (cached_has_bits & 0x00000010u) {
1638 total_size += 2 + 8;
1642 if (cached_has_bits & 0x00000020u) {
1643 total_size += 2 + 8;
1647 if (cached_has_bits & 0x00000040u) {
1648 total_size += 2 + 8;
1652 if (cached_has_bits & 0x00000080u) {
1653 total_size += 2 + 8;
1657 if (cached_has_bits & 0x0000ff00u) {
1659 if (cached_has_bits & 0x00000100u) {
1660 total_size += 2 + 8;
1664 if (cached_has_bits & 0x00000200u) {
1666 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1667 this->_internal_random_seed());
1671 if (cached_has_bits & 0x00000400u) {
1673 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1674 this->_internal_num_omp_threads());
1678 if (cached_has_bits & 0x00000800u) {
1679 total_size += 2 + 8;
1683 if (cached_has_bits & 0x00001000u) {
1684 total_size += 2 + 8;
1688 if (cached_has_bits & 0x00002000u) {
1689 total_size += 2 + 8;
1693 if (cached_has_bits & 0x00004000u) {
1694 total_size += 2 + 8;
1698 if (cached_has_bits & 0x00008000u) {
1699 total_size += 2 + 8;
1704 if (cached_has_bits & 0x00010000u) {
1705 total_size += 2 + 8;
1708 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1709 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1710 _internal_metadata_, total_size, &_cached_size_);
1712 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1713 SetCachedSize(cached_size);
1717 void GlopParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1719 GOOGLE_DCHECK_NE(&from,
this);
1720 const GlopParameters* source =
1721 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GlopParameters>(
1723 if (source ==
nullptr) {
1725 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1732 void GlopParameters::MergeFrom(
const GlopParameters& from) {
1734 GOOGLE_DCHECK_NE(&from,
this);
1735 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1737 (void) cached_has_bits;
1739 cached_has_bits = from._has_bits_[0];
1740 if (cached_has_bits & 0x000000ffu) {
1741 if (cached_has_bits & 0x00000001u) {
1742 use_dual_simplex_ = from.use_dual_simplex_;
1744 if (cached_has_bits & 0x00000002u) {
1745 allow_simplex_algorithm_change_ = from.allow_simplex_algorithm_change_;
1747 if (cached_has_bits & 0x00000004u) {
1748 perturb_costs_in_dual_simplex_ = from.perturb_costs_in_dual_simplex_;
1750 if (cached_has_bits & 0x00000008u) {
1751 scaling_method_ = from.scaling_method_;
1753 if (cached_has_bits & 0x00000010u) {
1754 feasibility_rule_ = from.feasibility_rule_;
1756 if (cached_has_bits & 0x00000020u) {
1757 optimization_rule_ = from.optimization_rule_;
1759 if (cached_has_bits & 0x00000040u) {
1760 refactorization_threshold_ = from.refactorization_threshold_;
1762 if (cached_has_bits & 0x00000080u) {
1763 recompute_reduced_costs_threshold_ = from.recompute_reduced_costs_threshold_;
1765 _has_bits_[0] |= cached_has_bits;
1767 if (cached_has_bits & 0x0000ff00u) {
1768 if (cached_has_bits & 0x00000100u) {
1769 recompute_edges_norm_threshold_ = from.recompute_edges_norm_threshold_;
1771 if (cached_has_bits & 0x00000200u) {
1772 primal_feasibility_tolerance_ = from.primal_feasibility_tolerance_;
1774 if (cached_has_bits & 0x00000400u) {
1775 dual_feasibility_tolerance_ = from.dual_feasibility_tolerance_;
1777 if (cached_has_bits & 0x00000800u) {
1778 ratio_test_zero_threshold_ = from.ratio_test_zero_threshold_;
1780 if (cached_has_bits & 0x00001000u) {
1781 normalize_using_column_norm_ = from.normalize_using_column_norm_;
1783 if (cached_has_bits & 0x00002000u) {
1784 use_nested_pricing_ = from.use_nested_pricing_;
1786 if (cached_has_bits & 0x00004000u) {
1787 use_scaling_ = from.use_scaling_;
1789 if (cached_has_bits & 0x00008000u) {
1790 use_transposed_matrix_ = from.use_transposed_matrix_;
1792 _has_bits_[0] |= cached_has_bits;
1794 if (cached_has_bits & 0x00ff0000u) {
1795 if (cached_has_bits & 0x00010000u) {
1796 initial_basis_ = from.initial_basis_;
1798 if (cached_has_bits & 0x00020000u) {
1799 harris_tolerance_ratio_ = from.harris_tolerance_ratio_;
1801 if (cached_has_bits & 0x00040000u) {
1802 small_pivot_threshold_ = from.small_pivot_threshold_;
1804 if (cached_has_bits & 0x00080000u) {
1805 minimum_acceptable_pivot_ = from.minimum_acceptable_pivot_;
1807 if (cached_has_bits & 0x00100000u) {
1808 basis_refactorization_period_ = from.basis_refactorization_period_;
1810 if (cached_has_bits & 0x00200000u) {
1811 solve_dual_problem_ = from.solve_dual_problem_;
1813 if (cached_has_bits & 0x00400000u) {
1814 dualizer_threshold_ = from.dualizer_threshold_;
1816 if (cached_has_bits & 0x00800000u) {
1817 solution_feasibility_tolerance_ = from.solution_feasibility_tolerance_;
1819 _has_bits_[0] |= cached_has_bits;
1821 if (cached_has_bits & 0xff000000u) {
1822 if (cached_has_bits & 0x01000000u) {
1823 lu_factorization_pivot_threshold_ = from.lu_factorization_pivot_threshold_;
1825 if (cached_has_bits & 0x02000000u) {
1826 max_time_in_seconds_ = from.max_time_in_seconds_;
1828 if (cached_has_bits & 0x04000000u) {
1829 max_number_of_iterations_ = from.max_number_of_iterations_;
1831 if (cached_has_bits & 0x08000000u) {
1832 markowitz_singularity_threshold_ = from.markowitz_singularity_threshold_;
1834 if (cached_has_bits & 0x10000000u) {
1835 markowitz_zlatev_parameter_ = from.markowitz_zlatev_parameter_;
1837 if (cached_has_bits & 0x20000000u) {
1838 devex_weights_reset_period_ = from.devex_weights_reset_period_;
1840 if (cached_has_bits & 0x40000000u) {
1841 initialize_devex_with_column_norms_ = from.initialize_devex_with_column_norms_;
1843 if (cached_has_bits & 0x80000000u) {
1844 exploit_singleton_column_in_initial_basis_ = from.exploit_singleton_column_in_initial_basis_;
1846 _has_bits_[0] |= cached_has_bits;
1848 cached_has_bits = from._has_bits_[1];
1849 if (cached_has_bits & 0x000000ffu) {
1850 if (cached_has_bits & 0x00000001u) {
1851 provide_strong_optimal_guarantee_ = from.provide_strong_optimal_guarantee_;
1853 if (cached_has_bits & 0x00000002u) {
1854 change_status_to_imprecise_ = from.change_status_to_imprecise_;
1856 if (cached_has_bits & 0x00000004u) {
1857 use_preprocessing_ = from.use_preprocessing_;
1859 if (cached_has_bits & 0x00000008u) {
1860 use_middle_product_form_update_ = from.use_middle_product_form_update_;
1862 if (cached_has_bits & 0x00000010u) {
1863 dual_small_pivot_threshold_ = from.dual_small_pivot_threshold_;
1865 if (cached_has_bits & 0x00000020u) {
1866 preprocessor_zero_tolerance_ = from.preprocessor_zero_tolerance_;
1868 if (cached_has_bits & 0x00000040u) {
1869 objective_lower_limit_ = from.objective_lower_limit_;
1871 if (cached_has_bits & 0x00000080u) {
1872 objective_upper_limit_ = from.objective_upper_limit_;
1874 _has_bits_[1] |= cached_has_bits;
1876 if (cached_has_bits & 0x0000ff00u) {
1877 if (cached_has_bits & 0x00000100u) {
1878 degenerate_ministep_factor_ = from.degenerate_ministep_factor_;
1880 if (cached_has_bits & 0x00000200u) {
1881 random_seed_ = from.random_seed_;
1883 if (cached_has_bits & 0x00000400u) {
1884 num_omp_threads_ = from.num_omp_threads_;
1886 if (cached_has_bits & 0x00000800u) {
1887 max_deterministic_time_ = from.max_deterministic_time_;
1889 if (cached_has_bits & 0x00001000u) {
1890 drop_tolerance_ = from.drop_tolerance_;
1892 if (cached_has_bits & 0x00002000u) {
1893 relative_cost_perturbation_ = from.relative_cost_perturbation_;
1895 if (cached_has_bits & 0x00004000u) {
1896 relative_max_cost_perturbation_ = from.relative_max_cost_perturbation_;
1898 if (cached_has_bits & 0x00008000u) {
1899 max_number_of_reoptimizations_ = from.max_number_of_reoptimizations_;
1901 _has_bits_[1] |= cached_has_bits;
1903 if (cached_has_bits & 0x00010000u) {
1904 _internal_set_initial_condition_number_threshold(from._internal_initial_condition_number_threshold());
1908 void GlopParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1910 if (&from ==
this)
return;
1915 void GlopParameters::CopyFrom(
const GlopParameters& from) {
1917 if (&from ==
this)
return;
1922 bool GlopParameters::IsInitialized()
const {
1926 void GlopParameters::InternalSwap(GlopParameters* other) {
1928 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1929 swap(_has_bits_[0], other->_has_bits_[0]);
1930 swap(_has_bits_[1], other->_has_bits_[1]);
1931 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1932 PROTOBUF_FIELD_OFFSET(GlopParameters, perturb_costs_in_dual_simplex_)
1933 +
sizeof(GlopParameters::perturb_costs_in_dual_simplex_)
1934 - PROTOBUF_FIELD_OFFSET(GlopParameters, use_dual_simplex_)>(
1935 reinterpret_cast<char*
>(&use_dual_simplex_),
1936 reinterpret_cast<char*
>(&other->use_dual_simplex_));
1937 swap(scaling_method_, other->scaling_method_);
1938 swap(feasibility_rule_, other->feasibility_rule_);
1939 swap(optimization_rule_, other->optimization_rule_);
1940 swap(refactorization_threshold_, other->refactorization_threshold_);
1941 swap(recompute_reduced_costs_threshold_, other->recompute_reduced_costs_threshold_);
1942 swap(recompute_edges_norm_threshold_, other->recompute_edges_norm_threshold_);
1943 swap(primal_feasibility_tolerance_, other->primal_feasibility_tolerance_);
1944 swap(dual_feasibility_tolerance_, other->dual_feasibility_tolerance_);
1945 swap(ratio_test_zero_threshold_, other->ratio_test_zero_threshold_);
1946 swap(normalize_using_column_norm_, other->normalize_using_column_norm_);
1947 swap(use_nested_pricing_, other->use_nested_pricing_);
1948 swap(use_scaling_, other->use_scaling_);
1949 swap(use_transposed_matrix_, other->use_transposed_matrix_);
1950 swap(initial_basis_, other->initial_basis_);
1951 swap(harris_tolerance_ratio_, other->harris_tolerance_ratio_);
1952 swap(small_pivot_threshold_, other->small_pivot_threshold_);
1953 swap(minimum_acceptable_pivot_, other->minimum_acceptable_pivot_);
1954 swap(basis_refactorization_period_, other->basis_refactorization_period_);
1955 swap(solve_dual_problem_, other->solve_dual_problem_);
1956 swap(dualizer_threshold_, other->dualizer_threshold_);
1957 swap(solution_feasibility_tolerance_, other->solution_feasibility_tolerance_);
1958 swap(lu_factorization_pivot_threshold_, other->lu_factorization_pivot_threshold_);
1959 swap(max_time_in_seconds_, other->max_time_in_seconds_);
1960 swap(max_number_of_iterations_, other->max_number_of_iterations_);
1961 swap(markowitz_singularity_threshold_, other->markowitz_singularity_threshold_);
1962 swap(markowitz_zlatev_parameter_, other->markowitz_zlatev_parameter_);
1963 swap(devex_weights_reset_period_, other->devex_weights_reset_period_);
1964 swap(initialize_devex_with_column_norms_, other->initialize_devex_with_column_norms_);
1965 swap(exploit_singleton_column_in_initial_basis_, other->exploit_singleton_column_in_initial_basis_);
1966 swap(provide_strong_optimal_guarantee_, other->provide_strong_optimal_guarantee_);
1967 swap(change_status_to_imprecise_, other->change_status_to_imprecise_);
1968 swap(use_preprocessing_, other->use_preprocessing_);
1969 swap(use_middle_product_form_update_, other->use_middle_product_form_update_);
1970 swap(dual_small_pivot_threshold_, other->dual_small_pivot_threshold_);
1971 swap(preprocessor_zero_tolerance_, other->preprocessor_zero_tolerance_);
1972 swap(objective_lower_limit_, other->objective_lower_limit_);
1973 swap(objective_upper_limit_, other->objective_upper_limit_);
1974 swap(degenerate_ministep_factor_, other->degenerate_ministep_factor_);
1975 swap(random_seed_, other->random_seed_);
1976 swap(num_omp_threads_, other->num_omp_threads_);
1977 swap(max_deterministic_time_, other->max_deterministic_time_);
1978 swap(drop_tolerance_, other->drop_tolerance_);
1979 swap(relative_cost_perturbation_, other->relative_cost_perturbation_);
1980 swap(relative_max_cost_perturbation_, other->relative_max_cost_perturbation_);
1981 swap(max_number_of_reoptimizations_, other->max_number_of_reoptimizations_);
1982 swap(initial_condition_number_threshold_, other->initial_condition_number_threshold_);
1985 ::PROTOBUF_NAMESPACE_ID::Metadata GlopParameters::GetMetadata()
const {
1986 return GetMetadataStatic();
1993 PROTOBUF_NAMESPACE_OPEN
1995 return Arena::CreateMessageInternal< ::operations_research::glop::GlopParameters >(arena);
1997 PROTOBUF_NAMESPACE_CLOSE
2000 #include <google/protobuf/port_undef.inc>