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> 18 PROTOBUF_PRAGMA_INIT_SEG
22 ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
23 : use_dual_simplex_(false)
24 , allow_simplex_algorithm_change_(false)
25 , perturb_costs_in_dual_simplex_(false)
26 , log_search_progress_(false)
27 , feasibility_rule_(1)
29 , optimization_rule_(1)
31 , refactorization_threshold_(1e-09)
32 , recompute_reduced_costs_threshold_(1e-08)
33 , recompute_edges_norm_threshold_(100)
34 , primal_feasibility_tolerance_(1e-08)
35 , dual_feasibility_tolerance_(1e-08)
36 , ratio_test_zero_threshold_(1e-09)
37 , harris_tolerance_ratio_(0.5)
38 , small_pivot_threshold_(1e-06)
39 , minimum_acceptable_pivot_(1e-06)
42 , basis_refactorization_period_(64)
43 , dualizer_threshold_(1.5)
44 , solution_feasibility_tolerance_(1e-06)
45 , solve_dual_problem_(2)
47 , markowitz_zlatev_parameter_(3)
48 , lu_factorization_pivot_threshold_(0.01)
49 , max_time_in_seconds_(std::numeric_limits<double>::infinity())
50 , max_number_of_iterations_(int64_t{-1})
51 , markowitz_singularity_threshold_(1e-15)
53 , use_transposed_matrix_(
true)
54 , dynamically_adjust_refactorization_period_(
true)
55 , provide_strong_optimal_guarantee_(
true)
56 , devex_weights_reset_period_(150)
57 , dual_small_pivot_threshold_(0.0001)
58 , preprocessor_zero_tolerance_(1e-09)
59 , objective_lower_limit_(-std::numeric_limits<double>::infinity())
60 , objective_upper_limit_(std::numeric_limits<double>::infinity())
61 , change_status_to_imprecise_(
true)
62 , use_preprocessing_(
true)
63 , use_middle_product_form_update_(
true)
64 , initialize_devex_with_column_norms_(
true)
66 , degenerate_ministep_factor_(0.01)
67 , max_deterministic_time_(std::numeric_limits<double>::infinity())
68 , drop_tolerance_(1e-14)
70 , exploit_singleton_column_in_initial_basis_(
true)
71 , use_dedicated_dual_feasibility_algorithm_(
true)
72 , push_to_vertex_(
true)
73 , relative_cost_perturbation_(1e-05)
74 , relative_max_cost_perturbation_(1e-07)
75 , max_number_of_reoptimizations_(40)
80 , initial_condition_number_threshold_(1e+50)
81 , crossover_bound_snapping_distance_(std::numeric_limits<double>::infinity()){}
219 "\n\035ortools/glop/parameters.proto\022\030operati" 220 "ons_research.glop\"\230\027\n\016GlopParameters\022`\n\016" 221 "scaling_method\0309 \001(\01629.operations_resear" 222 "ch.glop.GlopParameters.ScalingAlgorithm:" 223 "\rEQUILIBRATION\022]\n\020feasibility_rule\030\001 \001(\016" 224 "24.operations_research.glop.GlopParamete" 225 "rs.PricingRule:\rSTEEPEST_EDGE\022^\n\021optimiz" 226 "ation_rule\030\002 \001(\01624.operations_research.g" 227 "lop.GlopParameters.PricingRule:\rSTEEPEST" 228 "_EDGE\022(\n\031refactorization_threshold\030\006 \001(\001" 229 ":\0051e-09\0220\n!recompute_reduced_costs_thres" 230 "hold\030\010 \001(\001:\0051e-08\022+\n\036recompute_edges_nor" 231 "m_threshold\030\t \001(\001:\003100\022+\n\034primal_feasibi" 232 "lity_tolerance\030\n \001(\001:\0051e-08\022)\n\032dual_feas" 233 "ibility_tolerance\030\013 \001(\001:\0051e-08\022(\n\031ratio_" 234 "test_zero_threshold\030\014 \001(\001:\0051e-09\022#\n\026harr" 235 "is_tolerance_ratio\030\r \001(\001:\0030.5\022$\n\025small_p" 236 "ivot_threshold\030\016 \001(\001:\0051e-06\022\'\n\030minimum_a" 237 "cceptable_pivot\030\017 \001(\001:\0051e-06\022\035\n\016drop_tol" 238 "erance\0304 \001(\001:\0051e-14\022\031\n\013use_scaling\030\020 \001(\010" 239 ":\004true\022m\n\014cost_scaling\030< \001(\0162=.operation" 240 "s_research.glop.GlopParameters.CostScali" 241 "ngAlgorithm:\030CONTAIN_ONE_COST_SCALING\022a\n" 242 "\rinitial_basis\030\021 \001(\0162>.operations_resear" 243 "ch.glop.GlopParameters.InitialBasisHeuri" 244 "stic:\nTRIANGULAR\022#\n\025use_transposed_matri" 245 "x\030\022 \001(\010:\004true\022(\n\034basis_refactorization_p" 246 "eriod\030\023 \001(\005:\00264\0227\n)dynamically_adjust_re" 247 "factorization_period\030\? \001(\010:\004true\022f\n\022solv" 248 "e_dual_problem\030\024 \001(\01627.operations_resear" 249 "ch.glop.GlopParameters.SolverBehavior:\021L" 250 "ET_SOLVER_DECIDE\022\037\n\022dualizer_threshold\030\025" 251 " \001(\001:\0031.5\022-\n\036solution_feasibility_tolera" 252 "nce\030\026 \001(\001:\0051e-06\022.\n provide_strong_optim" 253 "al_guarantee\030\030 \001(\010:\004true\022(\n\032change_statu" 254 "s_to_imprecise\030: \001(\010:\004true\022)\n\035max_number" 255 "_of_reoptimizations\0308 \001(\001:\00240\022.\n lu_fact" 256 "orization_pivot_threshold\030\031 \001(\001:\0040.01\022 \n" 257 "\023max_time_in_seconds\030\032 \001(\001:\003inf\022#\n\026max_d" 258 "eterministic_time\030- \001(\001:\003inf\022$\n\030max_numb" 259 "er_of_iterations\030\033 \001(\003:\002-1\022%\n\032markowitz_" 260 "zlatev_parameter\030\035 \001(\005:\0013\022.\n\037markowitz_s" 261 "ingularity_threshold\030\036 \001(\001:\0051e-15\022\037\n\020use" 262 "_dual_simplex\030\037 \001(\010:\005false\022-\n\036allow_simp" 263 "lex_algorithm_change\030 \001(\010:\005false\022\'\n\032dev" 264 "ex_weights_reset_period\030! \001(\005:\003150\022\037\n\021us" 265 "e_preprocessing\030\" \001(\010:\004true\022,\n\036use_middl" 266 "e_product_form_update\030# \001(\010:\004true\0220\n\"ini" 267 "tialize_devex_with_column_norms\030$ \001(\010:\004t" 268 "rue\0227\n)exploit_singleton_column_in_initi" 269 "al_basis\030% \001(\010:\004true\022*\n\032dual_small_pivot" 270 "_threshold\030& \001(\001:\0060.0001\022*\n\033preprocessor" 271 "_zero_tolerance\030\' \001(\001:\0051e-09\022#\n\025objectiv" 272 "e_lower_limit\030( \001(\001:\004-inf\022\"\n\025objective_u" 273 "pper_limit\030) \001(\001:\003inf\022(\n\032degenerate_mini" 274 "step_factor\030* \001(\001:\0040.01\022\026\n\013random_seed\030+" 275 " \001(\005:\0011\022\032\n\017num_omp_threads\030, \001(\005:\0011\022,\n\035p" 276 "erturb_costs_in_dual_simplex\0305 \001(\010:\005fals" 277 "e\0226\n(use_dedicated_dual_feasibility_algo" 278 "rithm\030> \001(\010:\004true\022)\n\032relative_cost_pertu" 279 "rbation\0306 \001(\001:\0051e-05\022-\n\036relative_max_cos" 280 "t_perturbation\0307 \001(\001:\0051e-07\0221\n\"initial_c" 281 "ondition_number_threshold\030; \001(\001:\0051e+50\022\"" 282 "\n\023log_search_progress\030= \001(\010:\005false\022.\n!cr" 283 "ossover_bound_snapping_distance\030@ \001(\001:\003i" 284 "nf\022\034\n\016push_to_vertex\030A \001(\010:\004true\"F\n\020Scal" 285 "ingAlgorithm\022\013\n\007DEFAULT\020\000\022\021\n\rEQUILIBRATI" 286 "ON\020\001\022\022\n\016LINEAR_PROGRAM\020\002\"D\n\016SolverBehavi" 287 "or\022\r\n\tALWAYS_DO\020\000\022\014\n\010NEVER_DO\020\001\022\025\n\021LET_S" 288 "OLVER_DECIDE\020\002\"8\n\013PricingRule\022\013\n\007DANTZIG" 289 "\020\000\022\021\n\rSTEEPEST_EDGE\020\001\022\t\n\005DEVEX\020\002\"G\n\025Init" 290 "ialBasisHeuristic\022\010\n\004NONE\020\000\022\t\n\005BIXBY\020\001\022\016" 291 "\n\nTRIANGULAR\020\002\022\t\n\005MAROS\020\003\"y\n\024CostScaling" 292 "Algorithm\022\023\n\017NO_COST_SCALING\020\000\022\034\n\030CONTAI" 293 "N_ONE_COST_SCALING\020\001\022\025\n\021MEAN_COST_SCALIN" 294 "G\020\002\022\027\n\023MEDIAN_COST_SCALING\020\003" 298 false,
false, 3028, descriptor_table_protodef_ortools_2fglop_2fparameters_2eproto,
"ortools/glop/parameters.proto",
326 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 333 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 349 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 356 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 372 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 379 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 396 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 404 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 421 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 429 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) 435 using HasBits = decltype(std::declval<GlopParameters>()._has_bits_);
437 (*has_bits)[1] |= 131072u;
440 (*has_bits)[0] |= 16u;
443 (*has_bits)[0] |= 32u;
446 (*has_bits)[0] |= 64u;
449 (*has_bits)[0] |= 128u;
452 (*has_bits)[0] |= 256u;
455 (*has_bits)[0] |= 512u;
458 (*has_bits)[0] |= 1024u;
461 (*has_bits)[0] |= 2048u;
464 (*has_bits)[0] |= 4096u;
467 (*has_bits)[0] |= 8192u;
470 (*has_bits)[0] |= 16384u;
473 (*has_bits)[1] |= 512u;
476 (*has_bits)[0] |= 33554432u;
479 (*has_bits)[1] |= 262144u;
482 (*has_bits)[0] |= 32768u;
485 (*has_bits)[0] |= 67108864u;
488 (*has_bits)[0] |= 65536u;
491 (*has_bits)[0] |= 134217728u;
494 (*has_bits)[0] |= 524288u;
497 (*has_bits)[0] |= 131072u;
500 (*has_bits)[0] |= 262144u;
503 (*has_bits)[0] |= 268435456u;
506 (*has_bits)[1] |= 4u;
509 (*has_bits)[1] |= 65536u;
512 (*has_bits)[0] |= 2097152u;
515 (*has_bits)[0] |= 4194304u;
518 (*has_bits)[1] |= 256u;
521 (*has_bits)[0] |= 8388608u;
524 (*has_bits)[0] |= 1048576u;
527 (*has_bits)[0] |= 16777216u;
530 (*has_bits)[0] |= 1u;
533 (*has_bits)[0] |= 2u;
536 (*has_bits)[0] |= 536870912u;
539 (*has_bits)[1] |= 8u;
542 (*has_bits)[1] |= 16u;
545 (*has_bits)[1] |= 32u;
548 (*has_bits)[1] |= 2048u;
551 (*has_bits)[0] |= 1073741824u;
554 (*has_bits)[0] |= 2147483648u;
557 (*has_bits)[1] |= 1u;
560 (*has_bits)[1] |= 2u;
563 (*has_bits)[1] |= 128u;
566 (*has_bits)[1] |= 64u;
569 (*has_bits)[1] |= 1024u;
572 (*has_bits)[0] |= 4u;
575 (*has_bits)[1] |= 4096u;
578 (*has_bits)[1] |= 16384u;
581 (*has_bits)[1] |= 32768u;
584 (*has_bits)[1] |= 524288u;
587 (*has_bits)[0] |= 8u;
590 (*has_bits)[1] |= 1048576u;
593 (*has_bits)[1] |= 8192u;
598 bool is_message_owned)
599 : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
601 if (!is_message_owned) {
602 RegisterArenaDtor(arena);
607 : ::PROTOBUF_NAMESPACE_ID::Message(),
608 _has_bits_(from._has_bits_) {
609 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
610 ::memcpy(&use_dual_simplex_, &from.use_dual_simplex_,
611 static_cast<size_t>(reinterpret_cast<char*>(&crossover_bound_snapping_distance_) -
612 reinterpret_cast<char*>(&use_dual_simplex_)) +
sizeof(crossover_bound_snapping_distance_));
616 inline void GlopParameters::SharedCtor() {
617 ::memset(reinterpret_cast<char*>(
this) + static_cast<size_t>(
618 reinterpret_cast<char*>(&use_dual_simplex_) - reinterpret_cast<char*>(
this)),
619 0, static_cast<size_t>(reinterpret_cast<char*>(&log_search_progress_) -
620 reinterpret_cast<char*>(&use_dual_simplex_)) +
sizeof(log_search_progress_));
621 feasibility_rule_ = 1;
622 optimization_rule_ = 1;
623 refactorization_threshold_ = 1e-09;
624 recompute_reduced_costs_threshold_ = 1e-08;
625 recompute_edges_norm_threshold_ = 100;
626 primal_feasibility_tolerance_ = 1e-08;
627 dual_feasibility_tolerance_ = 1e-08;
628 ratio_test_zero_threshold_ = 1e-09;
629 harris_tolerance_ratio_ = 0.5;
630 small_pivot_threshold_ = 1e-06;
631 minimum_acceptable_pivot_ = 1e-06;
633 basis_refactorization_period_ = 64;
634 dualizer_threshold_ = 1.5;
635 solution_feasibility_tolerance_ = 1e-06;
636 solve_dual_problem_ = 2;
637 markowitz_zlatev_parameter_ = 3;
638 lu_factorization_pivot_threshold_ = 0.01;
639 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
640 max_number_of_iterations_ = int64_t{-1};
641 markowitz_singularity_threshold_ = 1e-15;
643 use_transposed_matrix_ =
true;
644 dynamically_adjust_refactorization_period_ =
true;
645 provide_strong_optimal_guarantee_ =
true;
646 devex_weights_reset_period_ = 150;
647 dual_small_pivot_threshold_ = 0.0001;
648 preprocessor_zero_tolerance_ = 1e-09;
649 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
650 objective_upper_limit_ = std::numeric_limits<double>::infinity();
651 change_status_to_imprecise_ =
true;
652 use_preprocessing_ =
true;
653 use_middle_product_form_update_ =
true;
654 initialize_devex_with_column_norms_ =
true;
656 degenerate_ministep_factor_ = 0.01;
657 max_deterministic_time_ = std::numeric_limits<double>::infinity();
658 drop_tolerance_ = 1e-14;
659 num_omp_threads_ = 1;
660 exploit_singleton_column_in_initial_basis_ =
true;
661 use_dedicated_dual_feasibility_algorithm_ =
true;
662 push_to_vertex_ =
true;
663 relative_cost_perturbation_ = 1e-05;
664 relative_max_cost_perturbation_ = 1e-07;
665 max_number_of_reoptimizations_ = 40;
668 initial_condition_number_threshold_ = 1e+50;
669 crossover_bound_snapping_distance_ = std::numeric_limits<double>::infinity();
674 if (GetArenaForAllocation() !=
nullptr)
return;
676 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
679 inline void GlopParameters::SharedDtor() {
680 GOOGLE_DCHECK(GetArenaForAllocation() ==
nullptr);
683 void GlopParameters::ArenaDtor(
void*
object) {
684 GlopParameters* _this = reinterpret_cast< GlopParameters* >(
object);
687 void GlopParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
689 void GlopParameters::SetCachedSize(
int size)
const {
690 _cached_size_.Set(size);
695 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
697 (void) cached_has_bits;
699 ::memset(&use_dual_simplex_, 0, static_cast<size_t>(
700 reinterpret_cast<char*>(&log_search_progress_) -
701 reinterpret_cast<char*>(&use_dual_simplex_)) +
sizeof(log_search_progress_));
702 cached_has_bits = _has_bits_[0];
703 if (cached_has_bits & 0x000000f0u) {
704 feasibility_rule_ = 1;
705 optimization_rule_ = 1;
706 refactorization_threshold_ = 1e-09;
707 recompute_reduced_costs_threshold_ = 1e-08;
709 if (cached_has_bits & 0x0000ff00u) {
710 recompute_edges_norm_threshold_ = 100;
711 primal_feasibility_tolerance_ = 1e-08;
712 dual_feasibility_tolerance_ = 1e-08;
713 ratio_test_zero_threshold_ = 1e-09;
714 harris_tolerance_ratio_ = 0.5;
715 small_pivot_threshold_ = 1e-06;
716 minimum_acceptable_pivot_ = 1e-06;
719 if (cached_has_bits & 0x00ff0000u) {
720 basis_refactorization_period_ = 64;
721 dualizer_threshold_ = 1.5;
722 solution_feasibility_tolerance_ = 1e-06;
723 solve_dual_problem_ = 2;
724 markowitz_zlatev_parameter_ = 3;
725 lu_factorization_pivot_threshold_ = 0.01;
726 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
727 max_number_of_iterations_ = int64_t{-1};
729 if (cached_has_bits & 0xff000000u) {
730 markowitz_singularity_threshold_ = 1e-15;
732 use_transposed_matrix_ =
true;
733 dynamically_adjust_refactorization_period_ =
true;
734 provide_strong_optimal_guarantee_ =
true;
735 devex_weights_reset_period_ = 150;
736 dual_small_pivot_threshold_ = 0.0001;
737 preprocessor_zero_tolerance_ = 1e-09;
739 cached_has_bits = _has_bits_[1];
740 if (cached_has_bits & 0x000000ffu) {
741 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
742 objective_upper_limit_ = std::numeric_limits<double>::infinity();
743 change_status_to_imprecise_ =
true;
744 use_preprocessing_ =
true;
745 use_middle_product_form_update_ =
true;
746 initialize_devex_with_column_norms_ =
true;
748 degenerate_ministep_factor_ = 0.01;
750 if (cached_has_bits & 0x0000ff00u) {
751 max_deterministic_time_ = std::numeric_limits<double>::infinity();
752 drop_tolerance_ = 1e-14;
753 num_omp_threads_ = 1;
754 exploit_singleton_column_in_initial_basis_ =
true;
755 use_dedicated_dual_feasibility_algorithm_ =
true;
756 push_to_vertex_ =
true;
757 relative_cost_perturbation_ = 1e-05;
758 relative_max_cost_perturbation_ = 1e-07;
760 if (cached_has_bits & 0x001f0000u) {
761 max_number_of_reoptimizations_ = 40;
764 initial_condition_number_threshold_ = 1e+50;
765 crossover_bound_snapping_distance_ = std::numeric_limits<double>::infinity();
768 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
772 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure 773 while (!ctx->Done(&ptr)) {
774 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
775 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
779 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
780 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
783 _internal_set_feasibility_rule(static_cast<::operations_research::glop::GlopParameters_PricingRule>(val));
787 }
else goto handle_unusual;
791 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
792 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
795 _internal_set_optimization_rule(static_cast<::operations_research::glop::GlopParameters_PricingRule>(val));
799 }
else goto handle_unusual;
803 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 49)) {
805 refactorization_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
806 ptr +=
sizeof(double);
807 }
else goto handle_unusual;
811 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 65)) {
813 recompute_reduced_costs_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
814 ptr +=
sizeof(double);
815 }
else goto handle_unusual;
819 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 73)) {
821 recompute_edges_norm_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
822 ptr +=
sizeof(double);
823 }
else goto handle_unusual;
827 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 81)) {
829 primal_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
830 ptr +=
sizeof(double);
831 }
else goto handle_unusual;
835 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 89)) {
837 dual_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
838 ptr +=
sizeof(double);
839 }
else goto handle_unusual;
843 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 97)) {
845 ratio_test_zero_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
846 ptr +=
sizeof(double);
847 }
else goto handle_unusual;
851 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 105)) {
853 harris_tolerance_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
854 ptr +=
sizeof(double);
855 }
else goto handle_unusual;
859 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 113)) {
861 small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
862 ptr +=
sizeof(double);
863 }
else goto handle_unusual;
867 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 121)) {
869 minimum_acceptable_pivot_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
870 ptr +=
sizeof(double);
871 }
else goto handle_unusual;
875 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
877 use_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
879 }
else goto handle_unusual;
883 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
884 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
887 _internal_set_initial_basis(static_cast<::operations_research::glop::GlopParameters_InitialBasisHeuristic>(val));
891 }
else goto handle_unusual;
895 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
897 use_transposed_matrix_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
899 }
else goto handle_unusual;
903 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
905 basis_refactorization_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
907 }
else goto handle_unusual;
911 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
912 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
915 _internal_set_solve_dual_problem(static_cast<::operations_research::glop::GlopParameters_SolverBehavior>(val));
919 }
else goto handle_unusual;
923 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 169)) {
925 dualizer_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
926 ptr +=
sizeof(double);
927 }
else goto handle_unusual;
931 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
933 solution_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
934 ptr +=
sizeof(double);
935 }
else goto handle_unusual;
939 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
941 provide_strong_optimal_guarantee_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
943 }
else goto handle_unusual;
947 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 201)) {
949 lu_factorization_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
950 ptr +=
sizeof(double);
951 }
else goto handle_unusual;
955 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 209)) {
957 max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
958 ptr +=
sizeof(double);
959 }
else goto handle_unusual;
963 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
965 max_number_of_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
967 }
else goto handle_unusual;
971 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
973 markowitz_zlatev_parameter_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
975 }
else goto handle_unusual;
979 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 241)) {
981 markowitz_singularity_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
982 ptr +=
sizeof(double);
983 }
else goto handle_unusual;
987 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
989 use_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
991 }
else goto handle_unusual;
995 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
997 allow_simplex_algorithm_change_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
999 }
else goto handle_unusual;
1003 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1005 devex_weights_reset_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1007 }
else goto handle_unusual;
1011 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1013 use_preprocessing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1015 }
else goto handle_unusual;
1019 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1021 use_middle_product_form_update_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1023 }
else goto handle_unusual;
1027 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
1029 initialize_devex_with_column_norms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1031 }
else goto handle_unusual;
1035 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
1037 exploit_singleton_column_in_initial_basis_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1039 }
else goto handle_unusual;
1043 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 49)) {
1045 dual_small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1046 ptr +=
sizeof(double);
1047 }
else goto handle_unusual;
1051 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 57)) {
1053 preprocessor_zero_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1054 ptr +=
sizeof(double);
1055 }
else goto handle_unusual;
1059 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 65)) {
1061 objective_lower_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1062 ptr +=
sizeof(double);
1063 }
else goto handle_unusual;
1067 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 73)) {
1069 objective_upper_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1070 ptr +=
sizeof(double);
1071 }
else goto handle_unusual;
1075 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 81)) {
1077 degenerate_ministep_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1078 ptr +=
sizeof(double);
1079 }
else goto handle_unusual;
1083 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
1085 random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1087 }
else goto handle_unusual;
1091 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
1093 num_omp_threads_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1095 }
else goto handle_unusual;
1099 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 105)) {
1101 max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1102 ptr +=
sizeof(double);
1103 }
else goto handle_unusual;
1107 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 161)) {
1109 drop_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1110 ptr +=
sizeof(double);
1111 }
else goto handle_unusual;
1115 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
1117 perturb_costs_in_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1119 }
else goto handle_unusual;
1123 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
1125 relative_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1126 ptr +=
sizeof(double);
1127 }
else goto handle_unusual;
1131 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 185)) {
1133 relative_max_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1134 ptr +=
sizeof(double);
1135 }
else goto handle_unusual;
1139 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 193)) {
1141 max_number_of_reoptimizations_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1142 ptr +=
sizeof(double);
1143 }
else goto handle_unusual;
1147 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
1148 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1151 _internal_set_scaling_method(static_cast<::operations_research::glop::GlopParameters_ScalingAlgorithm>(val));
1155 }
else goto handle_unusual;
1159 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) {
1161 change_status_to_imprecise_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1163 }
else goto handle_unusual;
1167 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 217)) {
1169 initial_condition_number_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1170 ptr +=
sizeof(double);
1171 }
else goto handle_unusual;
1175 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 224)) {
1176 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1179 _internal_set_cost_scaling(static_cast<::operations_research::glop::GlopParameters_CostScalingAlgorithm>(val));
1183 }
else goto handle_unusual;
1187 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
1189 log_search_progress_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1191 }
else goto handle_unusual;
1195 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
1197 use_dedicated_dual_feasibility_algorithm_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1199 }
else goto handle_unusual;
1203 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
1205 dynamically_adjust_refactorization_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1207 }
else goto handle_unusual;
1211 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 1)) {
1213 crossover_bound_snapping_distance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1214 ptr +=
sizeof(double);
1215 }
else goto handle_unusual;
1219 if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1221 push_to_vertex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1223 }
else goto handle_unusual;
1227 if ((tag == 0) || ((tag & 7) == 4)) {
1229 ctx->SetLastTag(tag);
1232 ptr = UnknownFieldParse(tag,
1233 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1235 CHK_(ptr !=
nullptr);
1249 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
1251 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1252 (void) cached_has_bits;
1254 cached_has_bits = _has_bits_[0];
1256 if (cached_has_bits & 0x00000010u) {
1257 target = stream->EnsureSpace(target);
1258 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1259 1, this->_internal_feasibility_rule(), target);
1263 if (cached_has_bits & 0x00000020u) {
1264 target = stream->EnsureSpace(target);
1265 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1266 2, this->_internal_optimization_rule(), target);
1270 if (cached_has_bits & 0x00000040u) {
1271 target = stream->EnsureSpace(target);
1272 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(6, this->_internal_refactorization_threshold(), target);
1276 if (cached_has_bits & 0x00000080u) {
1277 target = stream->EnsureSpace(target);
1278 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(8, this->_internal_recompute_reduced_costs_threshold(), target);
1282 if (cached_has_bits & 0x00000100u) {
1283 target = stream->EnsureSpace(target);
1284 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(9, this->_internal_recompute_edges_norm_threshold(), target);
1288 if (cached_has_bits & 0x00000200u) {
1289 target = stream->EnsureSpace(target);
1290 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(10, this->_internal_primal_feasibility_tolerance(), target);
1294 if (cached_has_bits & 0x00000400u) {
1295 target = stream->EnsureSpace(target);
1296 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(11, this->_internal_dual_feasibility_tolerance(), target);
1300 if (cached_has_bits & 0x00000800u) {
1301 target = stream->EnsureSpace(target);
1302 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(12, this->_internal_ratio_test_zero_threshold(), target);
1306 if (cached_has_bits & 0x00001000u) {
1307 target = stream->EnsureSpace(target);
1308 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(13, this->_internal_harris_tolerance_ratio(), target);
1312 if (cached_has_bits & 0x00002000u) {
1313 target = stream->EnsureSpace(target);
1314 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_small_pivot_threshold(), target);
1318 if (cached_has_bits & 0x00004000u) {
1319 target = stream->EnsureSpace(target);
1320 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_minimum_acceptable_pivot(), target);
1324 if (cached_has_bits & 0x02000000u) {
1325 target = stream->EnsureSpace(target);
1326 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(16, this->_internal_use_scaling(), target);
1330 if (cached_has_bits & 0x00008000u) {
1331 target = stream->EnsureSpace(target);
1332 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1333 17, this->_internal_initial_basis(), target);
1337 if (cached_has_bits & 0x04000000u) {
1338 target = stream->EnsureSpace(target);
1339 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(18, this->_internal_use_transposed_matrix(), target);
1343 if (cached_has_bits & 0x00010000u) {
1344 target = stream->EnsureSpace(target);
1345 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_basis_refactorization_period(), target);
1349 if (cached_has_bits & 0x00080000u) {
1350 target = stream->EnsureSpace(target);
1351 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1352 20, this->_internal_solve_dual_problem(), target);
1356 if (cached_has_bits & 0x00020000u) {
1357 target = stream->EnsureSpace(target);
1358 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_dualizer_threshold(), target);
1362 if (cached_has_bits & 0x00040000u) {
1363 target = stream->EnsureSpace(target);
1364 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_solution_feasibility_tolerance(), target);
1368 if (cached_has_bits & 0x10000000u) {
1369 target = stream->EnsureSpace(target);
1370 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(24, this->_internal_provide_strong_optimal_guarantee(), target);
1374 if (cached_has_bits & 0x00200000u) {
1375 target = stream->EnsureSpace(target);
1376 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(25, this->_internal_lu_factorization_pivot_threshold(), target);
1380 if (cached_has_bits & 0x00400000u) {
1381 target = stream->EnsureSpace(target);
1382 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(26, this->_internal_max_time_in_seconds(), target);
1386 if (cached_has_bits & 0x00800000u) {
1387 target = stream->EnsureSpace(target);
1388 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(27, this->_internal_max_number_of_iterations(), target);
1392 if (cached_has_bits & 0x00100000u) {
1393 target = stream->EnsureSpace(target);
1394 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(29, this->_internal_markowitz_zlatev_parameter(), target);
1398 if (cached_has_bits & 0x01000000u) {
1399 target = stream->EnsureSpace(target);
1400 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(30, this->_internal_markowitz_singularity_threshold(), target);
1404 if (cached_has_bits & 0x00000001u) {
1405 target = stream->EnsureSpace(target);
1406 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(31, this->_internal_use_dual_simplex(), target);
1410 if (cached_has_bits & 0x00000002u) {
1411 target = stream->EnsureSpace(target);
1412 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(32, this->_internal_allow_simplex_algorithm_change(), target);
1416 if (cached_has_bits & 0x20000000u) {
1417 target = stream->EnsureSpace(target);
1418 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(33, this->_internal_devex_weights_reset_period(), target);
1421 cached_has_bits = _has_bits_[1];
1423 if (cached_has_bits & 0x00000008u) {
1424 target = stream->EnsureSpace(target);
1425 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(34, this->_internal_use_preprocessing(), target);
1429 if (cached_has_bits & 0x00000010u) {
1430 target = stream->EnsureSpace(target);
1431 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(35, this->_internal_use_middle_product_form_update(), target);
1435 if (cached_has_bits & 0x00000020u) {
1436 target = stream->EnsureSpace(target);
1437 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(36, this->_internal_initialize_devex_with_column_norms(), target);
1441 if (cached_has_bits & 0x00000800u) {
1442 target = stream->EnsureSpace(target);
1443 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(37, this->_internal_exploit_singleton_column_in_initial_basis(), target);
1446 cached_has_bits = _has_bits_[0];
1448 if (cached_has_bits & 0x40000000u) {
1449 target = stream->EnsureSpace(target);
1450 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_dual_small_pivot_threshold(), target);
1454 if (cached_has_bits & 0x80000000u) {
1455 target = stream->EnsureSpace(target);
1456 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(39, this->_internal_preprocessor_zero_tolerance(), target);
1459 cached_has_bits = _has_bits_[1];
1461 if (cached_has_bits & 0x00000001u) {
1462 target = stream->EnsureSpace(target);
1463 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(40, this->_internal_objective_lower_limit(), target);
1467 if (cached_has_bits & 0x00000002u) {
1468 target = stream->EnsureSpace(target);
1469 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(41, this->_internal_objective_upper_limit(), target);
1473 if (cached_has_bits & 0x00000080u) {
1474 target = stream->EnsureSpace(target);
1475 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_degenerate_ministep_factor(), target);
1479 if (cached_has_bits & 0x00000040u) {
1480 target = stream->EnsureSpace(target);
1481 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(43, this->_internal_random_seed(), target);
1485 if (cached_has_bits & 0x00000400u) {
1486 target = stream->EnsureSpace(target);
1487 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(44, this->_internal_num_omp_threads(), target);
1491 if (cached_has_bits & 0x00000100u) {
1492 target = stream->EnsureSpace(target);
1493 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(45, this->_internal_max_deterministic_time(), target);
1497 if (cached_has_bits & 0x00000200u) {
1498 target = stream->EnsureSpace(target);
1499 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(52, this->_internal_drop_tolerance(), target);
1502 cached_has_bits = _has_bits_[0];
1504 if (cached_has_bits & 0x00000004u) {
1505 target = stream->EnsureSpace(target);
1506 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(53, this->_internal_perturb_costs_in_dual_simplex(), target);
1509 cached_has_bits = _has_bits_[1];
1511 if (cached_has_bits & 0x00004000u) {
1512 target = stream->EnsureSpace(target);
1513 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(54, this->_internal_relative_cost_perturbation(), target);
1517 if (cached_has_bits & 0x00008000u) {
1518 target = stream->EnsureSpace(target);
1519 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(55, this->_internal_relative_max_cost_perturbation(), target);
1523 if (cached_has_bits & 0x00010000u) {
1524 target = stream->EnsureSpace(target);
1525 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(56, this->_internal_max_number_of_reoptimizations(), target);
1529 if (cached_has_bits & 0x00020000u) {
1530 target = stream->EnsureSpace(target);
1531 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1532 57, this->_internal_scaling_method(), target);
1536 if (cached_has_bits & 0x00000004u) {
1537 target = stream->EnsureSpace(target);
1538 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(58, this->_internal_change_status_to_imprecise(), target);
1542 if (cached_has_bits & 0x00080000u) {
1543 target = stream->EnsureSpace(target);
1544 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(59, this->_internal_initial_condition_number_threshold(), target);
1548 if (cached_has_bits & 0x00040000u) {
1549 target = stream->EnsureSpace(target);
1550 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1551 60, this->_internal_cost_scaling(), target);
1554 cached_has_bits = _has_bits_[0];
1556 if (cached_has_bits & 0x00000008u) {
1557 target = stream->EnsureSpace(target);
1558 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(61, this->_internal_log_search_progress(), target);
1561 cached_has_bits = _has_bits_[1];
1563 if (cached_has_bits & 0x00001000u) {
1564 target = stream->EnsureSpace(target);
1565 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(62, this->_internal_use_dedicated_dual_feasibility_algorithm(), target);
1568 cached_has_bits = _has_bits_[0];
1570 if (cached_has_bits & 0x08000000u) {
1571 target = stream->EnsureSpace(target);
1572 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(63, this->_internal_dynamically_adjust_refactorization_period(), target);
1575 cached_has_bits = _has_bits_[1];
1577 if (cached_has_bits & 0x00100000u) {
1578 target = stream->EnsureSpace(target);
1579 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(64, this->_internal_crossover_bound_snapping_distance(), target);
1583 if (cached_has_bits & 0x00002000u) {
1584 target = stream->EnsureSpace(target);
1585 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(65, this->_internal_push_to_vertex(), target);
1588 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1589 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1590 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1598 size_t total_size = 0;
1600 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1602 (void) cached_has_bits;
1604 cached_has_bits = _has_bits_[0];
1605 if (cached_has_bits & 0x000000ffu) {
1607 if (cached_has_bits & 0x00000001u) {
1608 total_size += 2 + 1;
1612 if (cached_has_bits & 0x00000002u) {
1613 total_size += 2 + 1;
1617 if (cached_has_bits & 0x00000004u) {
1618 total_size += 2 + 1;
1622 if (cached_has_bits & 0x00000008u) {
1623 total_size += 2 + 1;
1627 if (cached_has_bits & 0x00000010u) {
1629 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_feasibility_rule());
1633 if (cached_has_bits & 0x00000020u) {
1635 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_optimization_rule());
1639 if (cached_has_bits & 0x00000040u) {
1640 total_size += 1 + 8;
1644 if (cached_has_bits & 0x00000080u) {
1645 total_size += 1 + 8;
1649 if (cached_has_bits & 0x0000ff00u) {
1651 if (cached_has_bits & 0x00000100u) {
1652 total_size += 1 + 8;
1656 if (cached_has_bits & 0x00000200u) {
1657 total_size += 1 + 8;
1661 if (cached_has_bits & 0x00000400u) {
1662 total_size += 1 + 8;
1666 if (cached_has_bits & 0x00000800u) {
1667 total_size += 1 + 8;
1671 if (cached_has_bits & 0x00001000u) {
1672 total_size += 1 + 8;
1676 if (cached_has_bits & 0x00002000u) {
1677 total_size += 1 + 8;
1681 if (cached_has_bits & 0x00004000u) {
1682 total_size += 1 + 8;
1686 if (cached_has_bits & 0x00008000u) {
1688 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_initial_basis());
1692 if (cached_has_bits & 0x00ff0000u) {
1694 if (cached_has_bits & 0x00010000u) {
1696 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1697 this->_internal_basis_refactorization_period());
1701 if (cached_has_bits & 0x00020000u) {
1702 total_size += 2 + 8;
1706 if (cached_has_bits & 0x00040000u) {
1707 total_size += 2 + 8;
1711 if (cached_has_bits & 0x00080000u) {
1713 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_solve_dual_problem());
1717 if (cached_has_bits & 0x00100000u) {
1719 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1720 this->_internal_markowitz_zlatev_parameter());
1724 if (cached_has_bits & 0x00200000u) {
1725 total_size += 2 + 8;
1729 if (cached_has_bits & 0x00400000u) {
1730 total_size += 2 + 8;
1734 if (cached_has_bits & 0x00800000u) {
1736 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1737 this->_internal_max_number_of_iterations());
1741 if (cached_has_bits & 0xff000000u) {
1743 if (cached_has_bits & 0x01000000u) {
1744 total_size += 2 + 8;
1748 if (cached_has_bits & 0x02000000u) {
1749 total_size += 2 + 1;
1753 if (cached_has_bits & 0x04000000u) {
1754 total_size += 2 + 1;
1758 if (cached_has_bits & 0x08000000u) {
1759 total_size += 2 + 1;
1763 if (cached_has_bits & 0x10000000u) {
1764 total_size += 2 + 1;
1768 if (cached_has_bits & 0x20000000u) {
1770 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1771 this->_internal_devex_weights_reset_period());
1775 if (cached_has_bits & 0x40000000u) {
1776 total_size += 2 + 8;
1780 if (cached_has_bits & 0x80000000u) {
1781 total_size += 2 + 8;
1785 cached_has_bits = _has_bits_[1];
1786 if (cached_has_bits & 0x000000ffu) {
1788 if (cached_has_bits & 0x00000001u) {
1789 total_size += 2 + 8;
1793 if (cached_has_bits & 0x00000002u) {
1794 total_size += 2 + 8;
1798 if (cached_has_bits & 0x00000004u) {
1799 total_size += 2 + 1;
1803 if (cached_has_bits & 0x00000008u) {
1804 total_size += 2 + 1;
1808 if (cached_has_bits & 0x00000010u) {
1809 total_size += 2 + 1;
1813 if (cached_has_bits & 0x00000020u) {
1814 total_size += 2 + 1;
1818 if (cached_has_bits & 0x00000040u) {
1820 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1821 this->_internal_random_seed());
1825 if (cached_has_bits & 0x00000080u) {
1826 total_size += 2 + 8;
1830 if (cached_has_bits & 0x0000ff00u) {
1832 if (cached_has_bits & 0x00000100u) {
1833 total_size += 2 + 8;
1837 if (cached_has_bits & 0x00000200u) {
1838 total_size += 2 + 8;
1842 if (cached_has_bits & 0x00000400u) {
1844 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1845 this->_internal_num_omp_threads());
1849 if (cached_has_bits & 0x00000800u) {
1850 total_size += 2 + 1;
1854 if (cached_has_bits & 0x00001000u) {
1855 total_size += 2 + 1;
1859 if (cached_has_bits & 0x00002000u) {
1860 total_size += 2 + 1;
1864 if (cached_has_bits & 0x00004000u) {
1865 total_size += 2 + 8;
1869 if (cached_has_bits & 0x00008000u) {
1870 total_size += 2 + 8;
1874 if (cached_has_bits & 0x001f0000u) {
1876 if (cached_has_bits & 0x00010000u) {
1877 total_size += 2 + 8;
1881 if (cached_has_bits & 0x00020000u) {
1883 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_scaling_method());
1887 if (cached_has_bits & 0x00040000u) {
1889 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_cost_scaling());
1893 if (cached_has_bits & 0x00080000u) {
1894 total_size += 2 + 8;
1898 if (cached_has_bits & 0x00100000u) {
1899 total_size += 2 + 8;
1903 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1904 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1905 _internal_metadata_, total_size, &_cached_size_);
1907 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1908 SetCachedSize(cached_size);
1913 ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1914 GlopParameters::MergeImpl
1918 void GlopParameters::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1919 const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1920 static_cast<GlopParameters *>(to)->MergeFrom(
1921 static_cast<const GlopParameters &>(from));
1927 GOOGLE_DCHECK_NE(&from,
this);
1928 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1929 (void) cached_has_bits;
1931 cached_has_bits = from._has_bits_[0];
1932 if (cached_has_bits & 0x000000ffu) {
1933 if (cached_has_bits & 0x00000001u) {
1934 use_dual_simplex_ = from.use_dual_simplex_;
1936 if (cached_has_bits & 0x00000002u) {
1937 allow_simplex_algorithm_change_ = from.allow_simplex_algorithm_change_;
1939 if (cached_has_bits & 0x00000004u) {
1940 perturb_costs_in_dual_simplex_ = from.perturb_costs_in_dual_simplex_;
1942 if (cached_has_bits & 0x00000008u) {
1943 log_search_progress_ = from.log_search_progress_;
1945 if (cached_has_bits & 0x00000010u) {
1946 feasibility_rule_ = from.feasibility_rule_;
1948 if (cached_has_bits & 0x00000020u) {
1949 optimization_rule_ = from.optimization_rule_;
1951 if (cached_has_bits & 0x00000040u) {
1952 refactorization_threshold_ = from.refactorization_threshold_;
1954 if (cached_has_bits & 0x00000080u) {
1955 recompute_reduced_costs_threshold_ = from.recompute_reduced_costs_threshold_;
1957 _has_bits_[0] |= cached_has_bits;
1959 if (cached_has_bits & 0x0000ff00u) {
1960 if (cached_has_bits & 0x00000100u) {
1961 recompute_edges_norm_threshold_ = from.recompute_edges_norm_threshold_;
1963 if (cached_has_bits & 0x00000200u) {
1964 primal_feasibility_tolerance_ = from.primal_feasibility_tolerance_;
1966 if (cached_has_bits & 0x00000400u) {
1967 dual_feasibility_tolerance_ = from.dual_feasibility_tolerance_;
1969 if (cached_has_bits & 0x00000800u) {
1970 ratio_test_zero_threshold_ = from.ratio_test_zero_threshold_;
1972 if (cached_has_bits & 0x00001000u) {
1973 harris_tolerance_ratio_ = from.harris_tolerance_ratio_;
1975 if (cached_has_bits & 0x00002000u) {
1976 small_pivot_threshold_ = from.small_pivot_threshold_;
1978 if (cached_has_bits & 0x00004000u) {
1979 minimum_acceptable_pivot_ = from.minimum_acceptable_pivot_;
1981 if (cached_has_bits & 0x00008000u) {
1982 initial_basis_ = from.initial_basis_;
1984 _has_bits_[0] |= cached_has_bits;
1986 if (cached_has_bits & 0x00ff0000u) {
1987 if (cached_has_bits & 0x00010000u) {
1988 basis_refactorization_period_ = from.basis_refactorization_period_;
1990 if (cached_has_bits & 0x00020000u) {
1991 dualizer_threshold_ = from.dualizer_threshold_;
1993 if (cached_has_bits & 0x00040000u) {
1994 solution_feasibility_tolerance_ = from.solution_feasibility_tolerance_;
1996 if (cached_has_bits & 0x00080000u) {
1997 solve_dual_problem_ = from.solve_dual_problem_;
1999 if (cached_has_bits & 0x00100000u) {
2000 markowitz_zlatev_parameter_ = from.markowitz_zlatev_parameter_;
2002 if (cached_has_bits & 0x00200000u) {
2003 lu_factorization_pivot_threshold_ = from.lu_factorization_pivot_threshold_;
2005 if (cached_has_bits & 0x00400000u) {
2006 max_time_in_seconds_ = from.max_time_in_seconds_;
2008 if (cached_has_bits & 0x00800000u) {
2009 max_number_of_iterations_ = from.max_number_of_iterations_;
2011 _has_bits_[0] |= cached_has_bits;
2013 if (cached_has_bits & 0xff000000u) {
2014 if (cached_has_bits & 0x01000000u) {
2015 markowitz_singularity_threshold_ = from.markowitz_singularity_threshold_;
2017 if (cached_has_bits & 0x02000000u) {
2018 use_scaling_ = from.use_scaling_;
2020 if (cached_has_bits & 0x04000000u) {
2021 use_transposed_matrix_ = from.use_transposed_matrix_;
2023 if (cached_has_bits & 0x08000000u) {
2024 dynamically_adjust_refactorization_period_ = from.dynamically_adjust_refactorization_period_;
2026 if (cached_has_bits & 0x10000000u) {
2027 provide_strong_optimal_guarantee_ = from.provide_strong_optimal_guarantee_;
2029 if (cached_has_bits & 0x20000000u) {
2030 devex_weights_reset_period_ = from.devex_weights_reset_period_;
2032 if (cached_has_bits & 0x40000000u) {
2033 dual_small_pivot_threshold_ = from.dual_small_pivot_threshold_;
2035 if (cached_has_bits & 0x80000000u) {
2036 preprocessor_zero_tolerance_ = from.preprocessor_zero_tolerance_;
2038 _has_bits_[0] |= cached_has_bits;
2040 cached_has_bits = from._has_bits_[1];
2041 if (cached_has_bits & 0x000000ffu) {
2042 if (cached_has_bits & 0x00000001u) {
2043 objective_lower_limit_ = from.objective_lower_limit_;
2045 if (cached_has_bits & 0x00000002u) {
2046 objective_upper_limit_ = from.objective_upper_limit_;
2048 if (cached_has_bits & 0x00000004u) {
2049 change_status_to_imprecise_ = from.change_status_to_imprecise_;
2051 if (cached_has_bits & 0x00000008u) {
2052 use_preprocessing_ = from.use_preprocessing_;
2054 if (cached_has_bits & 0x00000010u) {
2055 use_middle_product_form_update_ = from.use_middle_product_form_update_;
2057 if (cached_has_bits & 0x00000020u) {
2058 initialize_devex_with_column_norms_ = from.initialize_devex_with_column_norms_;
2060 if (cached_has_bits & 0x00000040u) {
2061 random_seed_ = from.random_seed_;
2063 if (cached_has_bits & 0x00000080u) {
2064 degenerate_ministep_factor_ = from.degenerate_ministep_factor_;
2066 _has_bits_[1] |= cached_has_bits;
2068 if (cached_has_bits & 0x0000ff00u) {
2069 if (cached_has_bits & 0x00000100u) {
2070 max_deterministic_time_ = from.max_deterministic_time_;
2072 if (cached_has_bits & 0x00000200u) {
2073 drop_tolerance_ = from.drop_tolerance_;
2075 if (cached_has_bits & 0x00000400u) {
2076 num_omp_threads_ = from.num_omp_threads_;
2078 if (cached_has_bits & 0x00000800u) {
2079 exploit_singleton_column_in_initial_basis_ = from.exploit_singleton_column_in_initial_basis_;
2081 if (cached_has_bits & 0x00001000u) {
2082 use_dedicated_dual_feasibility_algorithm_ = from.use_dedicated_dual_feasibility_algorithm_;
2084 if (cached_has_bits & 0x00002000u) {
2085 push_to_vertex_ = from.push_to_vertex_;
2087 if (cached_has_bits & 0x00004000u) {
2088 relative_cost_perturbation_ = from.relative_cost_perturbation_;
2090 if (cached_has_bits & 0x00008000u) {
2091 relative_max_cost_perturbation_ = from.relative_max_cost_perturbation_;
2093 _has_bits_[1] |= cached_has_bits;
2095 if (cached_has_bits & 0x001f0000u) {
2096 if (cached_has_bits & 0x00010000u) {
2097 max_number_of_reoptimizations_ = from.max_number_of_reoptimizations_;
2099 if (cached_has_bits & 0x00020000u) {
2100 scaling_method_ = from.scaling_method_;
2102 if (cached_has_bits & 0x00040000u) {
2103 cost_scaling_ = from.cost_scaling_;
2105 if (cached_has_bits & 0x00080000u) {
2106 initial_condition_number_threshold_ = from.initial_condition_number_threshold_;
2108 if (cached_has_bits & 0x00100000u) {
2109 crossover_bound_snapping_distance_ = from.crossover_bound_snapping_distance_;
2111 _has_bits_[1] |= cached_has_bits;
2113 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2118 if (&from ==
this)
return;
2129 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2130 swap(_has_bits_[0], other->_has_bits_[0]);
2131 swap(_has_bits_[1], other->_has_bits_[1]);
2132 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2134 +
sizeof(GlopParameters::log_search_progress_)
2136 reinterpret_cast<char*>(&use_dual_simplex_),
2137 reinterpret_cast<char*>(&other->use_dual_simplex_));
2138 swap(feasibility_rule_, other->feasibility_rule_);
2139 swap(optimization_rule_, other->optimization_rule_);
2140 swap(refactorization_threshold_, other->refactorization_threshold_);
2141 swap(recompute_reduced_costs_threshold_, other->recompute_reduced_costs_threshold_);
2142 swap(recompute_edges_norm_threshold_, other->recompute_edges_norm_threshold_);
2143 swap(primal_feasibility_tolerance_, other->primal_feasibility_tolerance_);
2144 swap(dual_feasibility_tolerance_, other->dual_feasibility_tolerance_);
2145 swap(ratio_test_zero_threshold_, other->ratio_test_zero_threshold_);
2146 swap(harris_tolerance_ratio_, other->harris_tolerance_ratio_);
2147 swap(small_pivot_threshold_, other->small_pivot_threshold_);
2148 swap(minimum_acceptable_pivot_, other->minimum_acceptable_pivot_);
2149 swap(initial_basis_, other->initial_basis_);
2150 swap(basis_refactorization_period_, other->basis_refactorization_period_);
2151 swap(dualizer_threshold_, other->dualizer_threshold_);
2152 swap(solution_feasibility_tolerance_, other->solution_feasibility_tolerance_);
2153 swap(solve_dual_problem_, other->solve_dual_problem_);
2154 swap(markowitz_zlatev_parameter_, other->markowitz_zlatev_parameter_);
2155 swap(lu_factorization_pivot_threshold_, other->lu_factorization_pivot_threshold_);
2156 swap(max_time_in_seconds_, other->max_time_in_seconds_);
2157 swap(max_number_of_iterations_, other->max_number_of_iterations_);
2158 swap(markowitz_singularity_threshold_, other->markowitz_singularity_threshold_);
2159 swap(use_scaling_, other->use_scaling_);
2160 swap(use_transposed_matrix_, other->use_transposed_matrix_);
2161 swap(dynamically_adjust_refactorization_period_, other->dynamically_adjust_refactorization_period_);
2162 swap(provide_strong_optimal_guarantee_, other->provide_strong_optimal_guarantee_);
2163 swap(devex_weights_reset_period_, other->devex_weights_reset_period_);
2164 swap(dual_small_pivot_threshold_, other->dual_small_pivot_threshold_);
2165 swap(preprocessor_zero_tolerance_, other->preprocessor_zero_tolerance_);
2166 swap(objective_lower_limit_, other->objective_lower_limit_);
2167 swap(objective_upper_limit_, other->objective_upper_limit_);
2168 swap(change_status_to_imprecise_, other->change_status_to_imprecise_);
2169 swap(use_preprocessing_, other->use_preprocessing_);
2170 swap(use_middle_product_form_update_, other->use_middle_product_form_update_);
2171 swap(initialize_devex_with_column_norms_, other->initialize_devex_with_column_norms_);
2172 swap(random_seed_, other->random_seed_);
2173 swap(degenerate_ministep_factor_, other->degenerate_ministep_factor_);
2174 swap(max_deterministic_time_, other->max_deterministic_time_);
2175 swap(drop_tolerance_, other->drop_tolerance_);
2176 swap(num_omp_threads_, other->num_omp_threads_);
2177 swap(exploit_singleton_column_in_initial_basis_, other->exploit_singleton_column_in_initial_basis_);
2178 swap(use_dedicated_dual_feasibility_algorithm_, other->use_dedicated_dual_feasibility_algorithm_);
2179 swap(push_to_vertex_, other->push_to_vertex_);
2180 swap(relative_cost_perturbation_, other->relative_cost_perturbation_);
2181 swap(relative_max_cost_perturbation_, other->relative_max_cost_perturbation_);
2182 swap(max_number_of_reoptimizations_, other->max_number_of_reoptimizations_);
2183 swap(scaling_method_, other->scaling_method_);
2184 swap(cost_scaling_, other->cost_scaling_);
2185 swap(initial_condition_number_threshold_, other->initial_condition_number_threshold_);
2186 swap(crossover_bound_snapping_distance_, other->crossover_bound_snapping_distance_);
2190 return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2198 PROTOBUF_NAMESPACE_OPEN
2200 return Arena::CreateMessageInternal< ::operations_research::glop::GlopParameters >(arena);
2202 PROTOBUF_NAMESPACE_CLOSE
2205 #include <google/protobuf/port_undef.inc> static constexpr InitialBasisHeuristic NONE
static constexpr int CostScalingAlgorithm_ARRAYSIZE
void MergeFrom(const GlopParameters &from)
static constexpr CostScalingAlgorithm NO_COST_SCALING
static void set_has_basis_refactorization_period(HasBits *has_bits)
static void set_has_small_pivot_threshold(HasBits *has_bits)
GlopParameters_SolverBehavior
static constexpr SolverBehavior NEVER_DO
static void set_has_max_number_of_reoptimizations(HasBits *has_bits)
constexpr GlopParametersDefaultTypeInternal()
static void set_has_use_dedicated_dual_feasibility_algorithm(HasBits *has_bits)
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fglop_2fparameters_2eproto[1]
static void set_has_allow_simplex_algorithm_change(HasBits *has_bits)
GlopParameters_ScalingAlgorithm
static constexpr CostScalingAlgorithm CONTAIN_ONE_COST_SCALING
static void set_has_objective_lower_limit(HasBits *has_bits)
static constexpr SolverBehavior SolverBehavior_MAX
static constexpr int PricingRule_ARRAYSIZE
static void set_has_markowitz_singularity_threshold(HasBits *has_bits)
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fglop_2fparameters_2eproto::offsets [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static constexpr ScalingAlgorithm DEFAULT
static constexpr PricingRule PricingRule_MIN
static void set_has_lu_factorization_pivot_threshold(HasBits *has_bits)
size_t ByteSizeLong() const final
bool IsInitialized() const final
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_PricingRule_descriptor()
static void set_has_initialize_devex_with_column_norms(HasBits *has_bits)
static void set_has_optimization_rule(HasBits *has_bits)
bool GlopParameters_ScalingAlgorithm_IsValid(int value)
static void set_has_random_seed(HasBits *has_bits)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr int ScalingAlgorithm_ARRAYSIZE
~GlopParametersDefaultTypeInternal()
static void set_has_cost_scaling(HasBits *has_bits)
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
static void set_has_refactorization_threshold(HasBits *has_bits)
bool GlopParameters_PricingRule_IsValid(int value)
static void set_has_feasibility_rule(HasBits *has_bits)
static constexpr int SolverBehavior_ARRAYSIZE
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_CostScalingAlgorithm_descriptor()
static void set_has_solution_feasibility_tolerance(HasBits *has_bits)
friend void swap(GlopParameters &a, GlopParameters &b)
static void set_has_solve_dual_problem(HasBits *has_bits)
static void set_has_change_status_to_imprecise(HasBits *has_bits)
static void set_has_use_dual_simplex(HasBits *has_bits)
static void set_has_max_deterministic_time(HasBits *has_bits)
static void set_has_minimum_acceptable_pivot(HasBits *has_bits)
static void set_has_use_preprocessing(HasBits *has_bits)
static constexpr ScalingAlgorithm ScalingAlgorithm_MIN
static void set_has_ratio_test_zero_threshold(HasBits *has_bits)
static void set_has_harris_tolerance_ratio(HasBits *has_bits)
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fglop_2fparameters_2eproto
static constexpr CostScalingAlgorithm MEAN_COST_SCALING
static void set_has_max_number_of_iterations(HasBits *has_bits)
static void set_has_degenerate_ministep_factor(HasBits *has_bits)
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fglop_2fparameters_2eproto_getter()
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_SolverBehavior_descriptor()
static constexpr InitialBasisHeuristic BIXBY
GlopParameters_CostScalingAlgorithm
static void set_has_max_time_in_seconds(HasBits *has_bits)
static constexpr InitialBasisHeuristic MAROS
bool GlopParameters_SolverBehavior_IsValid(int value)
static void set_has_recompute_reduced_costs_threshold(HasBits *has_bits)
bool GlopParameters_CostScalingAlgorithm_IsValid(int value)
static void set_has_log_search_progress(HasBits *has_bits)
static constexpr SolverBehavior ALWAYS_DO
static void set_has_perturb_costs_in_dual_simplex(HasBits *has_bits)
static void set_has_scaling_method(HasBits *has_bits)
static constexpr SolverBehavior LET_SOLVER_DECIDE
static constexpr PricingRule STEEPEST_EDGE
static void set_has_relative_cost_perturbation(HasBits *has_bits)
static void set_has_relative_max_cost_perturbation(HasBits *has_bits)
static constexpr SolverBehavior SolverBehavior_MIN
static void set_has_objective_upper_limit(HasBits *has_bits)
static void set_has_push_to_vertex(HasBits *has_bits)
static constexpr PricingRule DEVEX
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static constexpr PricingRule PricingRule_MAX
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static constexpr CostScalingAlgorithm CostScalingAlgorithm_MAX
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static constexpr ScalingAlgorithm EQUILIBRATION
~GlopParameters() override
static void set_has_markowitz_zlatev_parameter(HasBits *has_bits)
static constexpr ScalingAlgorithm LINEAR_PROGRAM
void CopyFrom(const GlopParameters &from)
static void set_has_initial_condition_number_threshold(HasBits *has_bits)
GlopParameters_InitialBasisHeuristic
static constexpr InitialBasisHeuristic TRIANGULAR
static void set_has_primal_feasibility_tolerance(HasBits *has_bits)
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fglop_2fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fglop_2fparameters_2eproto_once
static void set_has_dynamically_adjust_refactorization_period(HasBits *has_bits)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fglop_2fparameters_2eproto[5]
static void set_has_initial_basis(HasBits *has_bits)
static void set_has_drop_tolerance(HasBits *has_bits)
GlopParameters_PricingRule
static void set_has_provide_strong_optimal_guarantee(HasBits *has_bits)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr PricingRule DANTZIG
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::glop::GlopParameters * Arena::CreateMaybeMessage< ::operations_research::glop::GlopParameters >(Arena *arena)
static constexpr int InitialBasisHeuristic_ARRAYSIZE
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
static constexpr ScalingAlgorithm ScalingAlgorithm_MAX
static void set_has_recompute_edges_norm_threshold(HasBits *has_bits)
static constexpr CostScalingAlgorithm CostScalingAlgorithm_MIN
Collection of objects used to extend the Constraint Solver library.
static const ClassData _class_data_
bool GlopParameters_InitialBasisHeuristic_IsValid(int value)
static void set_has_use_transposed_matrix(HasBits *has_bits)
static void set_has_dualizer_threshold(HasBits *has_bits)
static void set_has_exploit_singleton_column_in_initial_basis(HasBits *has_bits)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT GlopParametersDefaultTypeInternal _GlopParameters_default_instance_
decltype(std::declval< GlopParameters >()._has_bits_) HasBits
static void set_has_use_middle_product_form_update(HasBits *has_bits)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_ScalingAlgorithm_descriptor()
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
static void set_has_preprocessor_zero_tolerance(HasBits *has_bits)
static void set_has_dual_feasibility_tolerance(HasBits *has_bits)
static constexpr CostScalingAlgorithm MEDIAN_COST_SCALING
static void set_has_dual_small_pivot_threshold(HasBits *has_bits)
static constexpr InitialBasisHeuristic InitialBasisHeuristic_MIN
static constexpr InitialBasisHeuristic InitialBasisHeuristic_MAX
static void set_has_num_omp_threads(HasBits *has_bits)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_InitialBasisHeuristic_descriptor()
static void set_has_use_scaling(HasBits *has_bits)
static void set_has_devex_weights_reset_period(HasBits *has_bits)
static void set_has_crossover_bound_snapping_distance(HasBits *has_bits)