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
21 constexpr GlopParameters::GlopParameters(
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_(PROTOBUF_LONGLONG(-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())
69 , exploit_singleton_column_in_initial_basis_(
true)
70 , use_dedicated_dual_feasibility_algorithm_(
true)
71 , drop_tolerance_(1e-14)
72 , relative_cost_perturbation_(1e-05)
73 , relative_max_cost_perturbation_(1e-07)
74 , max_number_of_reoptimizations_(40)
79 , initial_condition_number_threshold_(1e+50){}
96 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, _has_bits_),
97 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, _internal_metadata_),
101 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, scaling_method_),
102 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, feasibility_rule_),
103 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, optimization_rule_),
104 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, refactorization_threshold_),
105 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, recompute_reduced_costs_threshold_),
106 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, recompute_edges_norm_threshold_),
107 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, primal_feasibility_tolerance_),
108 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, dual_feasibility_tolerance_),
109 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, ratio_test_zero_threshold_),
110 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, harris_tolerance_ratio_),
111 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, small_pivot_threshold_),
112 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, minimum_acceptable_pivot_),
113 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, drop_tolerance_),
114 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, use_scaling_),
115 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, cost_scaling_),
116 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, initial_basis_),
117 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, use_transposed_matrix_),
118 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, basis_refactorization_period_),
119 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, dynamically_adjust_refactorization_period_),
120 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, solve_dual_problem_),
121 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, dualizer_threshold_),
122 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, solution_feasibility_tolerance_),
123 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, provide_strong_optimal_guarantee_),
124 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, change_status_to_imprecise_),
125 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, max_number_of_reoptimizations_),
126 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, lu_factorization_pivot_threshold_),
127 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, max_time_in_seconds_),
128 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, max_deterministic_time_),
129 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, max_number_of_iterations_),
130 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, markowitz_zlatev_parameter_),
131 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, markowitz_singularity_threshold_),
132 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, use_dual_simplex_),
133 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, allow_simplex_algorithm_change_),
134 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, devex_weights_reset_period_),
135 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, use_preprocessing_),
136 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, use_middle_product_form_update_),
137 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, initialize_devex_with_column_norms_),
138 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, exploit_singleton_column_in_initial_basis_),
139 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, dual_small_pivot_threshold_),
140 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, preprocessor_zero_tolerance_),
141 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, objective_lower_limit_),
142 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, objective_upper_limit_),
143 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, degenerate_ministep_factor_),
144 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, random_seed_),
145 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, num_omp_threads_),
146 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, perturb_costs_in_dual_simplex_),
147 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, use_dedicated_dual_feasibility_algorithm_),
148 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, relative_cost_perturbation_),
149 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, relative_max_cost_perturbation_),
150 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, initial_condition_number_threshold_),
151 PROTOBUF_FIELD_OFFSET(::operations_research::glop::GlopParameters, log_search_progress_),
205 { 0, 56,
sizeof(::operations_research::glop::GlopParameters)},
213 "\n\035ortools/glop/parameters.proto\022\030operati"
214 "ons_research.glop\"\312\026\n\016GlopParameters\022`\n\016"
215 "scaling_method\0309 \001(\01629.operations_resear"
216 "ch.glop.GlopParameters.ScalingAlgorithm:"
217 "\rEQUILIBRATION\022]\n\020feasibility_rule\030\001 \001(\016"
218 "24.operations_research.glop.GlopParamete"
219 "rs.PricingRule:\rSTEEPEST_EDGE\022^\n\021optimiz"
220 "ation_rule\030\002 \001(\01624.operations_research.g"
221 "lop.GlopParameters.PricingRule:\rSTEEPEST"
222 "_EDGE\022(\n\031refactorization_threshold\030\006 \001(\001"
223 ":\0051e-09\0220\n!recompute_reduced_costs_thres"
224 "hold\030\010 \001(\001:\0051e-08\022+\n\036recompute_edges_nor"
225 "m_threshold\030\t \001(\001:\003100\022+\n\034primal_feasibi"
226 "lity_tolerance\030\n \001(\001:\0051e-08\022)\n\032dual_feas"
227 "ibility_tolerance\030\013 \001(\001:\0051e-08\022(\n\031ratio_"
228 "test_zero_threshold\030\014 \001(\001:\0051e-09\022#\n\026harr"
229 "is_tolerance_ratio\030\r \001(\001:\0030.5\022$\n\025small_p"
230 "ivot_threshold\030\016 \001(\001:\0051e-06\022\'\n\030minimum_a"
231 "cceptable_pivot\030\017 \001(\001:\0051e-06\022\035\n\016drop_tol"
232 "erance\0304 \001(\001:\0051e-14\022\031\n\013use_scaling\030\020 \001(\010"
233 ":\004true\022m\n\014cost_scaling\030< \001(\0162=.operation"
234 "s_research.glop.GlopParameters.CostScali"
235 "ngAlgorithm:\030CONTAIN_ONE_COST_SCALING\022a\n"
236 "\rinitial_basis\030\021 \001(\0162>.operations_resear"
237 "ch.glop.GlopParameters.InitialBasisHeuri"
238 "stic:\nTRIANGULAR\022#\n\025use_transposed_matri"
239 "x\030\022 \001(\010:\004true\022(\n\034basis_refactorization_p"
240 "eriod\030\023 \001(\005:\00264\0227\n)dynamically_adjust_re"
241 "factorization_period\030\? \001(\010:\004true\022f\n\022solv"
242 "e_dual_problem\030\024 \001(\01627.operations_resear"
243 "ch.glop.GlopParameters.SolverBehavior:\021L"
244 "ET_SOLVER_DECIDE\022\037\n\022dualizer_threshold\030\025"
245 " \001(\001:\0031.5\022-\n\036solution_feasibility_tolera"
246 "nce\030\026 \001(\001:\0051e-06\022.\n provide_strong_optim"
247 "al_guarantee\030\030 \001(\010:\004true\022(\n\032change_statu"
248 "s_to_imprecise\030: \001(\010:\004true\022)\n\035max_number"
249 "_of_reoptimizations\0308 \001(\001:\00240\022.\n lu_fact"
250 "orization_pivot_threshold\030\031 \001(\001:\0040.01\022 \n"
251 "\023max_time_in_seconds\030\032 \001(\001:\003inf\022#\n\026max_d"
252 "eterministic_time\030- \001(\001:\003inf\022$\n\030max_numb"
253 "er_of_iterations\030\033 \001(\003:\002-1\022%\n\032markowitz_"
254 "zlatev_parameter\030\035 \001(\005:\0013\022.\n\037markowitz_s"
255 "ingularity_threshold\030\036 \001(\001:\0051e-15\022\037\n\020use"
256 "_dual_simplex\030\037 \001(\010:\005false\022-\n\036allow_simp"
257 "lex_algorithm_change\030 \001(\010:\005false\022\'\n\032dev"
258 "ex_weights_reset_period\030! \001(\005:\003150\022\037\n\021us"
259 "e_preprocessing\030\" \001(\010:\004true\022,\n\036use_middl"
260 "e_product_form_update\030# \001(\010:\004true\0220\n\"ini"
261 "tialize_devex_with_column_norms\030$ \001(\010:\004t"
262 "rue\0227\n)exploit_singleton_column_in_initi"
263 "al_basis\030% \001(\010:\004true\022*\n\032dual_small_pivot"
264 "_threshold\030& \001(\001:\0060.0001\022*\n\033preprocessor"
265 "_zero_tolerance\030\' \001(\001:\0051e-09\022#\n\025objectiv"
266 "e_lower_limit\030( \001(\001:\004-inf\022\"\n\025objective_u"
267 "pper_limit\030) \001(\001:\003inf\022(\n\032degenerate_mini"
268 "step_factor\030* \001(\001:\0040.01\022\026\n\013random_seed\030+"
269 " \001(\005:\0011\022\032\n\017num_omp_threads\030, \001(\005:\0011\022,\n\035p"
270 "erturb_costs_in_dual_simplex\0305 \001(\010:\005fals"
271 "e\0226\n(use_dedicated_dual_feasibility_algo"
272 "rithm\030> \001(\010:\004true\022)\n\032relative_cost_pertu"
273 "rbation\0306 \001(\001:\0051e-05\022-\n\036relative_max_cos"
274 "t_perturbation\0307 \001(\001:\0051e-07\0221\n\"initial_c"
275 "ondition_number_threshold\030; \001(\001:\0051e+50\022\""
276 "\n\023log_search_progress\030= \001(\010:\005false\"F\n\020Sc"
277 "alingAlgorithm\022\013\n\007DEFAULT\020\000\022\021\n\rEQUILIBRA"
278 "TION\020\001\022\022\n\016LINEAR_PROGRAM\020\002\"D\n\016SolverBeha"
279 "vior\022\r\n\tALWAYS_DO\020\000\022\014\n\010NEVER_DO\020\001\022\025\n\021LET"
280 "_SOLVER_DECIDE\020\002\"8\n\013PricingRule\022\013\n\007DANTZ"
281 "IG\020\000\022\021\n\rSTEEPEST_EDGE\020\001\022\t\n\005DEVEX\020\002\"G\n\025In"
282 "itialBasisHeuristic\022\010\n\004NONE\020\000\022\t\n\005BIXBY\020\001"
283 "\022\016\n\nTRIANGULAR\020\002\022\t\n\005MAROS\020\003\"y\n\024CostScali"
284 "ngAlgorithm\022\023\n\017NO_COST_SCALING\020\000\022\034\n\030CONT"
285 "AIN_ONE_COST_SCALING\020\001\022\025\n\021MEAN_COST_SCAL"
286 "ING\020\002\022\027\n\023MEDIAN_COST_SCALING\020\003"
290 false,
false, 2950, descriptor_table_protodef_ortools_2fglop_2fparameters_2eproto,
"ortools/glop/parameters.proto",
295 PROTOBUF_ATTRIBUTE_WEAK ::PROTOBUF_NAMESPACE_ID::Metadata
320 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
326 constexpr
int GlopParameters::ScalingAlgorithm_ARRAYSIZE;
343 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
349 constexpr
int GlopParameters::SolverBehavior_ARRAYSIZE;
366 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
372 constexpr
int GlopParameters::PricingRule_ARRAYSIZE;
390 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
397 constexpr
int GlopParameters::InitialBasisHeuristic_ARRAYSIZE;
415 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
422 constexpr
int GlopParameters::CostScalingAlgorithm_ARRAYSIZE;
429 using HasBits = decltype(std::declval<GlopParameters>()._has_bits_);
431 (*has_bits)[1] |= 65536u;
434 (*has_bits)[0] |= 16u;
437 (*has_bits)[0] |= 32u;
440 (*has_bits)[0] |= 64u;
443 (*has_bits)[0] |= 128u;
446 (*has_bits)[0] |= 256u;
449 (*has_bits)[0] |= 512u;
452 (*has_bits)[0] |= 1024u;
455 (*has_bits)[0] |= 2048u;
458 (*has_bits)[0] |= 4096u;
461 (*has_bits)[0] |= 8192u;
464 (*has_bits)[0] |= 16384u;
467 (*has_bits)[1] |= 4096u;
470 (*has_bits)[0] |= 33554432u;
473 (*has_bits)[1] |= 131072u;
476 (*has_bits)[0] |= 32768u;
479 (*has_bits)[0] |= 67108864u;
482 (*has_bits)[0] |= 65536u;
485 (*has_bits)[0] |= 134217728u;
488 (*has_bits)[0] |= 524288u;
491 (*has_bits)[0] |= 131072u;
494 (*has_bits)[0] |= 262144u;
497 (*has_bits)[0] |= 268435456u;
500 (*has_bits)[1] |= 4u;
503 (*has_bits)[1] |= 32768u;
506 (*has_bits)[0] |= 2097152u;
509 (*has_bits)[0] |= 4194304u;
512 (*has_bits)[1] |= 256u;
515 (*has_bits)[0] |= 8388608u;
518 (*has_bits)[0] |= 1048576u;
521 (*has_bits)[0] |= 16777216u;
524 (*has_bits)[0] |= 1u;
527 (*has_bits)[0] |= 2u;
530 (*has_bits)[0] |= 536870912u;
533 (*has_bits)[1] |= 8u;
536 (*has_bits)[1] |= 16u;
539 (*has_bits)[1] |= 32u;
542 (*has_bits)[1] |= 1024u;
545 (*has_bits)[0] |= 1073741824u;
548 (*has_bits)[0] |= 2147483648u;
551 (*has_bits)[1] |= 1u;
554 (*has_bits)[1] |= 2u;
557 (*has_bits)[1] |= 128u;
560 (*has_bits)[1] |= 64u;
563 (*has_bits)[1] |= 512u;
566 (*has_bits)[0] |= 4u;
569 (*has_bits)[1] |= 2048u;
572 (*has_bits)[1] |= 8192u;
575 (*has_bits)[1] |= 16384u;
578 (*has_bits)[1] |= 262144u;
581 (*has_bits)[0] |= 8u;
585 GlopParameters::GlopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
586 : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
588 RegisterArenaDtor(arena);
591 GlopParameters::GlopParameters(
const GlopParameters& from)
592 : ::PROTOBUF_NAMESPACE_ID::Message(),
593 _has_bits_(from._has_bits_) {
594 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
595 ::memcpy(&use_dual_simplex_, &from.use_dual_simplex_,
596 static_cast<size_t>(
reinterpret_cast<char*
>(&initial_condition_number_threshold_) -
597 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(initial_condition_number_threshold_));
601 void GlopParameters::SharedCtor() {
602 ::memset(
reinterpret_cast<char*
>(
this) +
static_cast<size_t>(
603 reinterpret_cast<char*
>(&use_dual_simplex_) -
reinterpret_cast<char*
>(
this)),
604 0,
static_cast<size_t>(
reinterpret_cast<char*
>(&log_search_progress_) -
605 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(log_search_progress_));
606 feasibility_rule_ = 1;
607 optimization_rule_ = 1;
608 refactorization_threshold_ = 1e-09;
609 recompute_reduced_costs_threshold_ = 1e-08;
610 recompute_edges_norm_threshold_ = 100;
611 primal_feasibility_tolerance_ = 1e-08;
612 dual_feasibility_tolerance_ = 1e-08;
613 ratio_test_zero_threshold_ = 1e-09;
614 harris_tolerance_ratio_ = 0.5;
615 small_pivot_threshold_ = 1e-06;
616 minimum_acceptable_pivot_ = 1e-06;
618 basis_refactorization_period_ = 64;
619 dualizer_threshold_ = 1.5;
620 solution_feasibility_tolerance_ = 1e-06;
621 solve_dual_problem_ = 2;
622 markowitz_zlatev_parameter_ = 3;
623 lu_factorization_pivot_threshold_ = 0.01;
624 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
625 max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
626 markowitz_singularity_threshold_ = 1e-15;
628 use_transposed_matrix_ =
true;
629 dynamically_adjust_refactorization_period_ =
true;
630 provide_strong_optimal_guarantee_ =
true;
631 devex_weights_reset_period_ = 150;
632 dual_small_pivot_threshold_ = 0.0001;
633 preprocessor_zero_tolerance_ = 1e-09;
634 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
635 objective_upper_limit_ = std::numeric_limits<double>::infinity();
636 change_status_to_imprecise_ =
true;
637 use_preprocessing_ =
true;
638 use_middle_product_form_update_ =
true;
639 initialize_devex_with_column_norms_ =
true;
641 degenerate_ministep_factor_ = 0.01;
642 max_deterministic_time_ = std::numeric_limits<double>::infinity();
643 num_omp_threads_ = 1;
644 exploit_singleton_column_in_initial_basis_ =
true;
645 use_dedicated_dual_feasibility_algorithm_ =
true;
646 drop_tolerance_ = 1e-14;
647 relative_cost_perturbation_ = 1e-05;
648 relative_max_cost_perturbation_ = 1e-07;
649 max_number_of_reoptimizations_ = 40;
652 initial_condition_number_threshold_ = 1e+50;
655 GlopParameters::~GlopParameters() {
658 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
661 void GlopParameters::SharedDtor() {
662 GOOGLE_DCHECK(GetArena() ==
nullptr);
665 void GlopParameters::ArenaDtor(
void*
object) {
666 GlopParameters* _this =
reinterpret_cast< GlopParameters*
>(object);
669 void GlopParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
671 void GlopParameters::SetCachedSize(
int size)
const {
672 _cached_size_.Set(size);
675 void GlopParameters::Clear() {
677 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
679 (void) cached_has_bits;
681 ::memset(&use_dual_simplex_, 0,
static_cast<size_t>(
682 reinterpret_cast<char*
>(&log_search_progress_) -
683 reinterpret_cast<char*
>(&use_dual_simplex_)) +
sizeof(log_search_progress_));
684 cached_has_bits = _has_bits_[0];
685 if (cached_has_bits & 0x000000f0u) {
686 feasibility_rule_ = 1;
687 optimization_rule_ = 1;
688 refactorization_threshold_ = 1e-09;
689 recompute_reduced_costs_threshold_ = 1e-08;
691 if (cached_has_bits & 0x0000ff00u) {
692 recompute_edges_norm_threshold_ = 100;
693 primal_feasibility_tolerance_ = 1e-08;
694 dual_feasibility_tolerance_ = 1e-08;
695 ratio_test_zero_threshold_ = 1e-09;
696 harris_tolerance_ratio_ = 0.5;
697 small_pivot_threshold_ = 1e-06;
698 minimum_acceptable_pivot_ = 1e-06;
701 if (cached_has_bits & 0x00ff0000u) {
702 basis_refactorization_period_ = 64;
703 dualizer_threshold_ = 1.5;
704 solution_feasibility_tolerance_ = 1e-06;
705 solve_dual_problem_ = 2;
706 markowitz_zlatev_parameter_ = 3;
707 lu_factorization_pivot_threshold_ = 0.01;
708 max_time_in_seconds_ = std::numeric_limits<double>::infinity();
709 max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
711 if (cached_has_bits & 0xff000000u) {
712 markowitz_singularity_threshold_ = 1e-15;
714 use_transposed_matrix_ =
true;
715 dynamically_adjust_refactorization_period_ =
true;
716 provide_strong_optimal_guarantee_ =
true;
717 devex_weights_reset_period_ = 150;
718 dual_small_pivot_threshold_ = 0.0001;
719 preprocessor_zero_tolerance_ = 1e-09;
721 cached_has_bits = _has_bits_[1];
722 if (cached_has_bits & 0x000000ffu) {
723 objective_lower_limit_ = -std::numeric_limits<double>::infinity();
724 objective_upper_limit_ = std::numeric_limits<double>::infinity();
725 change_status_to_imprecise_ =
true;
726 use_preprocessing_ =
true;
727 use_middle_product_form_update_ =
true;
728 initialize_devex_with_column_norms_ =
true;
730 degenerate_ministep_factor_ = 0.01;
732 if (cached_has_bits & 0x0000ff00u) {
733 max_deterministic_time_ = std::numeric_limits<double>::infinity();
734 num_omp_threads_ = 1;
735 exploit_singleton_column_in_initial_basis_ =
true;
736 use_dedicated_dual_feasibility_algorithm_ =
true;
737 drop_tolerance_ = 1e-14;
738 relative_cost_perturbation_ = 1e-05;
739 relative_max_cost_perturbation_ = 1e-07;
740 max_number_of_reoptimizations_ = 40;
742 if (cached_has_bits & 0x00070000u) {
745 initial_condition_number_threshold_ = 1e+50;
748 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
751 const char* GlopParameters::_InternalParse(
const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
752 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
753 while (!ctx->Done(&ptr)) {
754 ::PROTOBUF_NAMESPACE_ID::uint32 tag;
755 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
760 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 8)) {
761 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
766 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
768 }
else goto handle_unusual;
772 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 16)) {
773 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
778 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(2, val, mutable_unknown_fields());
780 }
else goto handle_unusual;
784 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 49)) {
786 refactorization_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
787 ptr +=
sizeof(double);
788 }
else goto handle_unusual;
792 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 65)) {
794 recompute_reduced_costs_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
795 ptr +=
sizeof(double);
796 }
else goto handle_unusual;
800 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 73)) {
802 recompute_edges_norm_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
803 ptr +=
sizeof(double);
804 }
else goto handle_unusual;
808 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 81)) {
810 primal_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
811 ptr +=
sizeof(double);
812 }
else goto handle_unusual;
816 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 89)) {
818 dual_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
819 ptr +=
sizeof(double);
820 }
else goto handle_unusual;
824 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 97)) {
826 ratio_test_zero_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
827 ptr +=
sizeof(double);
828 }
else goto handle_unusual;
832 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 105)) {
834 harris_tolerance_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
835 ptr +=
sizeof(double);
836 }
else goto handle_unusual;
840 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 113)) {
842 small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
843 ptr +=
sizeof(double);
844 }
else goto handle_unusual;
848 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 121)) {
850 minimum_acceptable_pivot_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
851 ptr +=
sizeof(double);
852 }
else goto handle_unusual;
856 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 128)) {
858 use_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
860 }
else goto handle_unusual;
864 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 136)) {
865 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
870 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(17, val, mutable_unknown_fields());
872 }
else goto handle_unusual;
876 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 144)) {
878 use_transposed_matrix_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
880 }
else goto handle_unusual;
884 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 152)) {
886 basis_refactorization_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
888 }
else goto handle_unusual;
892 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 160)) {
893 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
898 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(20, val, mutable_unknown_fields());
900 }
else goto handle_unusual;
904 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 169)) {
906 dualizer_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
907 ptr +=
sizeof(double);
908 }
else goto handle_unusual;
912 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 177)) {
914 solution_feasibility_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
915 ptr +=
sizeof(double);
916 }
else goto handle_unusual;
920 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 192)) {
922 provide_strong_optimal_guarantee_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
924 }
else goto handle_unusual;
928 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 201)) {
930 lu_factorization_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
931 ptr +=
sizeof(double);
932 }
else goto handle_unusual;
936 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 209)) {
938 max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
939 ptr +=
sizeof(double);
940 }
else goto handle_unusual;
944 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 216)) {
946 max_number_of_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
948 }
else goto handle_unusual;
952 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 232)) {
954 markowitz_zlatev_parameter_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
956 }
else goto handle_unusual;
960 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 241)) {
962 markowitz_singularity_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
963 ptr +=
sizeof(double);
964 }
else goto handle_unusual;
968 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 248)) {
970 use_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
972 }
else goto handle_unusual;
976 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 0)) {
978 allow_simplex_algorithm_change_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
980 }
else goto handle_unusual;
984 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 8)) {
986 devex_weights_reset_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
988 }
else goto handle_unusual;
992 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 16)) {
994 use_preprocessing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
996 }
else goto handle_unusual;
1000 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 24)) {
1002 use_middle_product_form_update_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1004 }
else goto handle_unusual;
1008 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 32)) {
1010 initialize_devex_with_column_norms_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1012 }
else goto handle_unusual;
1016 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 40)) {
1018 exploit_singleton_column_in_initial_basis_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1020 }
else goto handle_unusual;
1024 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 49)) {
1026 dual_small_pivot_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1027 ptr +=
sizeof(double);
1028 }
else goto handle_unusual;
1032 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 57)) {
1034 preprocessor_zero_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1035 ptr +=
sizeof(double);
1036 }
else goto handle_unusual;
1040 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 65)) {
1042 objective_lower_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1043 ptr +=
sizeof(double);
1044 }
else goto handle_unusual;
1048 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 73)) {
1050 objective_upper_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1051 ptr +=
sizeof(double);
1052 }
else goto handle_unusual;
1056 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 81)) {
1058 degenerate_ministep_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1059 ptr +=
sizeof(double);
1060 }
else goto handle_unusual;
1064 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 88)) {
1066 random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1068 }
else goto handle_unusual;
1072 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 96)) {
1074 num_omp_threads_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1076 }
else goto handle_unusual;
1080 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 105)) {
1082 max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1083 ptr +=
sizeof(double);
1084 }
else goto handle_unusual;
1088 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 161)) {
1090 drop_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1091 ptr +=
sizeof(double);
1092 }
else goto handle_unusual;
1096 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 168)) {
1098 perturb_costs_in_dual_simplex_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1100 }
else goto handle_unusual;
1104 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 177)) {
1106 relative_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1107 ptr +=
sizeof(double);
1108 }
else goto handle_unusual;
1112 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 185)) {
1114 relative_max_cost_perturbation_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1115 ptr +=
sizeof(double);
1116 }
else goto handle_unusual;
1120 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 193)) {
1122 max_number_of_reoptimizations_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1123 ptr +=
sizeof(double);
1124 }
else goto handle_unusual;
1128 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 200)) {
1129 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1134 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(57, val, mutable_unknown_fields());
1136 }
else goto handle_unusual;
1140 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 208)) {
1142 change_status_to_imprecise_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1144 }
else goto handle_unusual;
1148 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 217)) {
1150 initial_condition_number_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1151 ptr +=
sizeof(double);
1152 }
else goto handle_unusual;
1156 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 224)) {
1157 ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1162 ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(60, val, mutable_unknown_fields());
1164 }
else goto handle_unusual;
1168 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 232)) {
1170 log_search_progress_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1172 }
else goto handle_unusual;
1176 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 240)) {
1178 use_dedicated_dual_feasibility_algorithm_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1180 }
else goto handle_unusual;
1184 if (PROTOBUF_PREDICT_TRUE(
static_cast<::PROTOBUF_NAMESPACE_ID::uint8
>(tag) == 248)) {
1186 dynamically_adjust_refactorization_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1188 }
else goto handle_unusual;
1192 if ((tag & 7) == 4 || tag == 0) {
1193 ctx->SetLastTag(tag);
1196 ptr = UnknownFieldParse(tag,
1197 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1199 CHK_(ptr !=
nullptr);
1212 ::PROTOBUF_NAMESPACE_ID::uint8* GlopParameters::_InternalSerialize(
1213 ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream)
const {
1215 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1216 (void) cached_has_bits;
1218 cached_has_bits = _has_bits_[0];
1220 if (cached_has_bits & 0x00000010u) {
1221 target = stream->EnsureSpace(target);
1222 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1223 1, this->_internal_feasibility_rule(), target);
1227 if (cached_has_bits & 0x00000020u) {
1228 target = stream->EnsureSpace(target);
1229 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1230 2, this->_internal_optimization_rule(), target);
1234 if (cached_has_bits & 0x00000040u) {
1235 target = stream->EnsureSpace(target);
1236 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(6, this->_internal_refactorization_threshold(), target);
1240 if (cached_has_bits & 0x00000080u) {
1241 target = stream->EnsureSpace(target);
1242 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(8, this->_internal_recompute_reduced_costs_threshold(), target);
1246 if (cached_has_bits & 0x00000100u) {
1247 target = stream->EnsureSpace(target);
1248 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(9, this->_internal_recompute_edges_norm_threshold(), target);
1252 if (cached_has_bits & 0x00000200u) {
1253 target = stream->EnsureSpace(target);
1254 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(10, this->_internal_primal_feasibility_tolerance(), target);
1258 if (cached_has_bits & 0x00000400u) {
1259 target = stream->EnsureSpace(target);
1260 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(11, this->_internal_dual_feasibility_tolerance(), target);
1264 if (cached_has_bits & 0x00000800u) {
1265 target = stream->EnsureSpace(target);
1266 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(12, this->_internal_ratio_test_zero_threshold(), target);
1270 if (cached_has_bits & 0x00001000u) {
1271 target = stream->EnsureSpace(target);
1272 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(13, this->_internal_harris_tolerance_ratio(), target);
1276 if (cached_has_bits & 0x00002000u) {
1277 target = stream->EnsureSpace(target);
1278 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(14, this->_internal_small_pivot_threshold(), target);
1282 if (cached_has_bits & 0x00004000u) {
1283 target = stream->EnsureSpace(target);
1284 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_minimum_acceptable_pivot(), target);
1288 if (cached_has_bits & 0x02000000u) {
1289 target = stream->EnsureSpace(target);
1290 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(16, this->_internal_use_scaling(), target);
1294 if (cached_has_bits & 0x00008000u) {
1295 target = stream->EnsureSpace(target);
1296 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1297 17, this->_internal_initial_basis(), target);
1301 if (cached_has_bits & 0x04000000u) {
1302 target = stream->EnsureSpace(target);
1303 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(18, this->_internal_use_transposed_matrix(), target);
1307 if (cached_has_bits & 0x00010000u) {
1308 target = stream->EnsureSpace(target);
1309 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_basis_refactorization_period(), target);
1313 if (cached_has_bits & 0x00080000u) {
1314 target = stream->EnsureSpace(target);
1315 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1316 20, this->_internal_solve_dual_problem(), target);
1320 if (cached_has_bits & 0x00020000u) {
1321 target = stream->EnsureSpace(target);
1322 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(21, this->_internal_dualizer_threshold(), target);
1326 if (cached_has_bits & 0x00040000u) {
1327 target = stream->EnsureSpace(target);
1328 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_solution_feasibility_tolerance(), target);
1332 if (cached_has_bits & 0x10000000u) {
1333 target = stream->EnsureSpace(target);
1334 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(24, this->_internal_provide_strong_optimal_guarantee(), target);
1338 if (cached_has_bits & 0x00200000u) {
1339 target = stream->EnsureSpace(target);
1340 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(25, this->_internal_lu_factorization_pivot_threshold(), target);
1344 if (cached_has_bits & 0x00400000u) {
1345 target = stream->EnsureSpace(target);
1346 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(26, this->_internal_max_time_in_seconds(), target);
1350 if (cached_has_bits & 0x00800000u) {
1351 target = stream->EnsureSpace(target);
1352 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(27, this->_internal_max_number_of_iterations(), target);
1356 if (cached_has_bits & 0x00100000u) {
1357 target = stream->EnsureSpace(target);
1358 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(29, this->_internal_markowitz_zlatev_parameter(), target);
1362 if (cached_has_bits & 0x01000000u) {
1363 target = stream->EnsureSpace(target);
1364 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(30, this->_internal_markowitz_singularity_threshold(), target);
1368 if (cached_has_bits & 0x00000001u) {
1369 target = stream->EnsureSpace(target);
1370 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(31, this->_internal_use_dual_simplex(), target);
1374 if (cached_has_bits & 0x00000002u) {
1375 target = stream->EnsureSpace(target);
1376 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(32, this->_internal_allow_simplex_algorithm_change(), target);
1380 if (cached_has_bits & 0x20000000u) {
1381 target = stream->EnsureSpace(target);
1382 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(33, this->_internal_devex_weights_reset_period(), target);
1385 cached_has_bits = _has_bits_[1];
1387 if (cached_has_bits & 0x00000008u) {
1388 target = stream->EnsureSpace(target);
1389 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(34, this->_internal_use_preprocessing(), target);
1393 if (cached_has_bits & 0x00000010u) {
1394 target = stream->EnsureSpace(target);
1395 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(35, this->_internal_use_middle_product_form_update(), target);
1399 if (cached_has_bits & 0x00000020u) {
1400 target = stream->EnsureSpace(target);
1401 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(36, this->_internal_initialize_devex_with_column_norms(), target);
1405 if (cached_has_bits & 0x00000400u) {
1406 target = stream->EnsureSpace(target);
1407 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(37, this->_internal_exploit_singleton_column_in_initial_basis(), target);
1410 cached_has_bits = _has_bits_[0];
1412 if (cached_has_bits & 0x40000000u) {
1413 target = stream->EnsureSpace(target);
1414 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(38, this->_internal_dual_small_pivot_threshold(), target);
1418 if (cached_has_bits & 0x80000000u) {
1419 target = stream->EnsureSpace(target);
1420 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(39, this->_internal_preprocessor_zero_tolerance(), target);
1423 cached_has_bits = _has_bits_[1];
1425 if (cached_has_bits & 0x00000001u) {
1426 target = stream->EnsureSpace(target);
1427 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(40, this->_internal_objective_lower_limit(), target);
1431 if (cached_has_bits & 0x00000002u) {
1432 target = stream->EnsureSpace(target);
1433 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(41, this->_internal_objective_upper_limit(), target);
1437 if (cached_has_bits & 0x00000080u) {
1438 target = stream->EnsureSpace(target);
1439 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(42, this->_internal_degenerate_ministep_factor(), target);
1443 if (cached_has_bits & 0x00000040u) {
1444 target = stream->EnsureSpace(target);
1445 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(43, this->_internal_random_seed(), target);
1449 if (cached_has_bits & 0x00000200u) {
1450 target = stream->EnsureSpace(target);
1451 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(44, this->_internal_num_omp_threads(), target);
1455 if (cached_has_bits & 0x00000100u) {
1456 target = stream->EnsureSpace(target);
1457 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(45, this->_internal_max_deterministic_time(), target);
1461 if (cached_has_bits & 0x00001000u) {
1462 target = stream->EnsureSpace(target);
1463 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(52, this->_internal_drop_tolerance(), target);
1466 cached_has_bits = _has_bits_[0];
1468 if (cached_has_bits & 0x00000004u) {
1469 target = stream->EnsureSpace(target);
1470 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(53, this->_internal_perturb_costs_in_dual_simplex(), target);
1473 cached_has_bits = _has_bits_[1];
1475 if (cached_has_bits & 0x00002000u) {
1476 target = stream->EnsureSpace(target);
1477 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(54, this->_internal_relative_cost_perturbation(), target);
1481 if (cached_has_bits & 0x00004000u) {
1482 target = stream->EnsureSpace(target);
1483 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(55, this->_internal_relative_max_cost_perturbation(), target);
1487 if (cached_has_bits & 0x00008000u) {
1488 target = stream->EnsureSpace(target);
1489 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(56, this->_internal_max_number_of_reoptimizations(), target);
1493 if (cached_has_bits & 0x00010000u) {
1494 target = stream->EnsureSpace(target);
1495 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1496 57, this->_internal_scaling_method(), target);
1500 if (cached_has_bits & 0x00000004u) {
1501 target = stream->EnsureSpace(target);
1502 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(58, this->_internal_change_status_to_imprecise(), target);
1506 if (cached_has_bits & 0x00040000u) {
1507 target = stream->EnsureSpace(target);
1508 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(59, this->_internal_initial_condition_number_threshold(), target);
1512 if (cached_has_bits & 0x00020000u) {
1513 target = stream->EnsureSpace(target);
1514 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
1515 60, this->_internal_cost_scaling(), target);
1518 cached_has_bits = _has_bits_[0];
1520 if (cached_has_bits & 0x00000008u) {
1521 target = stream->EnsureSpace(target);
1522 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(61, this->_internal_log_search_progress(), target);
1525 cached_has_bits = _has_bits_[1];
1527 if (cached_has_bits & 0x00000800u) {
1528 target = stream->EnsureSpace(target);
1529 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(62, this->_internal_use_dedicated_dual_feasibility_algorithm(), target);
1532 cached_has_bits = _has_bits_[0];
1534 if (cached_has_bits & 0x08000000u) {
1535 target = stream->EnsureSpace(target);
1536 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(63, this->_internal_dynamically_adjust_refactorization_period(), target);
1539 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1540 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1541 _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1547 size_t GlopParameters::ByteSizeLong()
const {
1549 size_t total_size = 0;
1551 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1553 (void) cached_has_bits;
1555 cached_has_bits = _has_bits_[0];
1556 if (cached_has_bits & 0x000000ffu) {
1558 if (cached_has_bits & 0x00000001u) {
1559 total_size += 2 + 1;
1563 if (cached_has_bits & 0x00000002u) {
1564 total_size += 2 + 1;
1568 if (cached_has_bits & 0x00000004u) {
1569 total_size += 2 + 1;
1573 if (cached_has_bits & 0x00000008u) {
1574 total_size += 2 + 1;
1578 if (cached_has_bits & 0x00000010u) {
1580 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_feasibility_rule());
1584 if (cached_has_bits & 0x00000020u) {
1586 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_optimization_rule());
1590 if (cached_has_bits & 0x00000040u) {
1591 total_size += 1 + 8;
1595 if (cached_has_bits & 0x00000080u) {
1596 total_size += 1 + 8;
1600 if (cached_has_bits & 0x0000ff00u) {
1602 if (cached_has_bits & 0x00000100u) {
1603 total_size += 1 + 8;
1607 if (cached_has_bits & 0x00000200u) {
1608 total_size += 1 + 8;
1612 if (cached_has_bits & 0x00000400u) {
1613 total_size += 1 + 8;
1617 if (cached_has_bits & 0x00000800u) {
1618 total_size += 1 + 8;
1622 if (cached_has_bits & 0x00001000u) {
1623 total_size += 1 + 8;
1627 if (cached_has_bits & 0x00002000u) {
1628 total_size += 1 + 8;
1632 if (cached_has_bits & 0x00004000u) {
1633 total_size += 1 + 8;
1637 if (cached_has_bits & 0x00008000u) {
1639 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_initial_basis());
1643 if (cached_has_bits & 0x00ff0000u) {
1645 if (cached_has_bits & 0x00010000u) {
1647 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1648 this->_internal_basis_refactorization_period());
1652 if (cached_has_bits & 0x00020000u) {
1653 total_size += 2 + 8;
1657 if (cached_has_bits & 0x00040000u) {
1658 total_size += 2 + 8;
1662 if (cached_has_bits & 0x00080000u) {
1664 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_solve_dual_problem());
1668 if (cached_has_bits & 0x00100000u) {
1670 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1671 this->_internal_markowitz_zlatev_parameter());
1675 if (cached_has_bits & 0x00200000u) {
1676 total_size += 2 + 8;
1680 if (cached_has_bits & 0x00400000u) {
1681 total_size += 2 + 8;
1685 if (cached_has_bits & 0x00800000u) {
1687 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1688 this->_internal_max_number_of_iterations());
1692 if (cached_has_bits & 0xff000000u) {
1694 if (cached_has_bits & 0x01000000u) {
1695 total_size += 2 + 8;
1699 if (cached_has_bits & 0x02000000u) {
1700 total_size += 2 + 1;
1704 if (cached_has_bits & 0x04000000u) {
1705 total_size += 2 + 1;
1709 if (cached_has_bits & 0x08000000u) {
1710 total_size += 2 + 1;
1714 if (cached_has_bits & 0x10000000u) {
1715 total_size += 2 + 1;
1719 if (cached_has_bits & 0x20000000u) {
1721 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1722 this->_internal_devex_weights_reset_period());
1726 if (cached_has_bits & 0x40000000u) {
1727 total_size += 2 + 8;
1731 if (cached_has_bits & 0x80000000u) {
1732 total_size += 2 + 8;
1736 cached_has_bits = _has_bits_[1];
1737 if (cached_has_bits & 0x000000ffu) {
1739 if (cached_has_bits & 0x00000001u) {
1740 total_size += 2 + 8;
1744 if (cached_has_bits & 0x00000002u) {
1745 total_size += 2 + 8;
1749 if (cached_has_bits & 0x00000004u) {
1750 total_size += 2 + 1;
1754 if (cached_has_bits & 0x00000008u) {
1755 total_size += 2 + 1;
1759 if (cached_has_bits & 0x00000010u) {
1760 total_size += 2 + 1;
1764 if (cached_has_bits & 0x00000020u) {
1765 total_size += 2 + 1;
1769 if (cached_has_bits & 0x00000040u) {
1771 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1772 this->_internal_random_seed());
1776 if (cached_has_bits & 0x00000080u) {
1777 total_size += 2 + 8;
1781 if (cached_has_bits & 0x0000ff00u) {
1783 if (cached_has_bits & 0x00000100u) {
1784 total_size += 2 + 8;
1788 if (cached_has_bits & 0x00000200u) {
1790 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1791 this->_internal_num_omp_threads());
1795 if (cached_has_bits & 0x00000400u) {
1796 total_size += 2 + 1;
1800 if (cached_has_bits & 0x00000800u) {
1801 total_size += 2 + 1;
1805 if (cached_has_bits & 0x00001000u) {
1806 total_size += 2 + 8;
1810 if (cached_has_bits & 0x00002000u) {
1811 total_size += 2 + 8;
1815 if (cached_has_bits & 0x00004000u) {
1816 total_size += 2 + 8;
1820 if (cached_has_bits & 0x00008000u) {
1821 total_size += 2 + 8;
1825 if (cached_has_bits & 0x00070000u) {
1827 if (cached_has_bits & 0x00010000u) {
1829 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_scaling_method());
1833 if (cached_has_bits & 0x00020000u) {
1835 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_cost_scaling());
1839 if (cached_has_bits & 0x00040000u) {
1840 total_size += 2 + 8;
1844 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1845 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1846 _internal_metadata_, total_size, &_cached_size_);
1848 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1849 SetCachedSize(cached_size);
1853 void GlopParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1855 GOOGLE_DCHECK_NE(&from,
this);
1856 const GlopParameters* source =
1857 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<GlopParameters>(
1859 if (source ==
nullptr) {
1861 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1868 void GlopParameters::MergeFrom(
const GlopParameters& from) {
1870 GOOGLE_DCHECK_NE(&from,
this);
1871 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1872 ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1873 (void) cached_has_bits;
1875 cached_has_bits = from._has_bits_[0];
1876 if (cached_has_bits & 0x000000ffu) {
1877 if (cached_has_bits & 0x00000001u) {
1878 use_dual_simplex_ = from.use_dual_simplex_;
1880 if (cached_has_bits & 0x00000002u) {
1881 allow_simplex_algorithm_change_ = from.allow_simplex_algorithm_change_;
1883 if (cached_has_bits & 0x00000004u) {
1884 perturb_costs_in_dual_simplex_ = from.perturb_costs_in_dual_simplex_;
1886 if (cached_has_bits & 0x00000008u) {
1887 log_search_progress_ = from.log_search_progress_;
1889 if (cached_has_bits & 0x00000010u) {
1890 feasibility_rule_ = from.feasibility_rule_;
1892 if (cached_has_bits & 0x00000020u) {
1893 optimization_rule_ = from.optimization_rule_;
1895 if (cached_has_bits & 0x00000040u) {
1896 refactorization_threshold_ = from.refactorization_threshold_;
1898 if (cached_has_bits & 0x00000080u) {
1899 recompute_reduced_costs_threshold_ = from.recompute_reduced_costs_threshold_;
1901 _has_bits_[0] |= cached_has_bits;
1903 if (cached_has_bits & 0x0000ff00u) {
1904 if (cached_has_bits & 0x00000100u) {
1905 recompute_edges_norm_threshold_ = from.recompute_edges_norm_threshold_;
1907 if (cached_has_bits & 0x00000200u) {
1908 primal_feasibility_tolerance_ = from.primal_feasibility_tolerance_;
1910 if (cached_has_bits & 0x00000400u) {
1911 dual_feasibility_tolerance_ = from.dual_feasibility_tolerance_;
1913 if (cached_has_bits & 0x00000800u) {
1914 ratio_test_zero_threshold_ = from.ratio_test_zero_threshold_;
1916 if (cached_has_bits & 0x00001000u) {
1917 harris_tolerance_ratio_ = from.harris_tolerance_ratio_;
1919 if (cached_has_bits & 0x00002000u) {
1920 small_pivot_threshold_ = from.small_pivot_threshold_;
1922 if (cached_has_bits & 0x00004000u) {
1923 minimum_acceptable_pivot_ = from.minimum_acceptable_pivot_;
1925 if (cached_has_bits & 0x00008000u) {
1926 initial_basis_ = from.initial_basis_;
1928 _has_bits_[0] |= cached_has_bits;
1930 if (cached_has_bits & 0x00ff0000u) {
1931 if (cached_has_bits & 0x00010000u) {
1932 basis_refactorization_period_ = from.basis_refactorization_period_;
1934 if (cached_has_bits & 0x00020000u) {
1935 dualizer_threshold_ = from.dualizer_threshold_;
1937 if (cached_has_bits & 0x00040000u) {
1938 solution_feasibility_tolerance_ = from.solution_feasibility_tolerance_;
1940 if (cached_has_bits & 0x00080000u) {
1941 solve_dual_problem_ = from.solve_dual_problem_;
1943 if (cached_has_bits & 0x00100000u) {
1944 markowitz_zlatev_parameter_ = from.markowitz_zlatev_parameter_;
1946 if (cached_has_bits & 0x00200000u) {
1947 lu_factorization_pivot_threshold_ = from.lu_factorization_pivot_threshold_;
1949 if (cached_has_bits & 0x00400000u) {
1950 max_time_in_seconds_ = from.max_time_in_seconds_;
1952 if (cached_has_bits & 0x00800000u) {
1953 max_number_of_iterations_ = from.max_number_of_iterations_;
1955 _has_bits_[0] |= cached_has_bits;
1957 if (cached_has_bits & 0xff000000u) {
1958 if (cached_has_bits & 0x01000000u) {
1959 markowitz_singularity_threshold_ = from.markowitz_singularity_threshold_;
1961 if (cached_has_bits & 0x02000000u) {
1962 use_scaling_ = from.use_scaling_;
1964 if (cached_has_bits & 0x04000000u) {
1965 use_transposed_matrix_ = from.use_transposed_matrix_;
1967 if (cached_has_bits & 0x08000000u) {
1968 dynamically_adjust_refactorization_period_ = from.dynamically_adjust_refactorization_period_;
1970 if (cached_has_bits & 0x10000000u) {
1971 provide_strong_optimal_guarantee_ = from.provide_strong_optimal_guarantee_;
1973 if (cached_has_bits & 0x20000000u) {
1974 devex_weights_reset_period_ = from.devex_weights_reset_period_;
1976 if (cached_has_bits & 0x40000000u) {
1977 dual_small_pivot_threshold_ = from.dual_small_pivot_threshold_;
1979 if (cached_has_bits & 0x80000000u) {
1980 preprocessor_zero_tolerance_ = from.preprocessor_zero_tolerance_;
1982 _has_bits_[0] |= cached_has_bits;
1984 cached_has_bits = from._has_bits_[1];
1985 if (cached_has_bits & 0x000000ffu) {
1986 if (cached_has_bits & 0x00000001u) {
1987 objective_lower_limit_ = from.objective_lower_limit_;
1989 if (cached_has_bits & 0x00000002u) {
1990 objective_upper_limit_ = from.objective_upper_limit_;
1992 if (cached_has_bits & 0x00000004u) {
1993 change_status_to_imprecise_ = from.change_status_to_imprecise_;
1995 if (cached_has_bits & 0x00000008u) {
1996 use_preprocessing_ = from.use_preprocessing_;
1998 if (cached_has_bits & 0x00000010u) {
1999 use_middle_product_form_update_ = from.use_middle_product_form_update_;
2001 if (cached_has_bits & 0x00000020u) {
2002 initialize_devex_with_column_norms_ = from.initialize_devex_with_column_norms_;
2004 if (cached_has_bits & 0x00000040u) {
2005 random_seed_ = from.random_seed_;
2007 if (cached_has_bits & 0x00000080u) {
2008 degenerate_ministep_factor_ = from.degenerate_ministep_factor_;
2010 _has_bits_[1] |= cached_has_bits;
2012 if (cached_has_bits & 0x0000ff00u) {
2013 if (cached_has_bits & 0x00000100u) {
2014 max_deterministic_time_ = from.max_deterministic_time_;
2016 if (cached_has_bits & 0x00000200u) {
2017 num_omp_threads_ = from.num_omp_threads_;
2019 if (cached_has_bits & 0x00000400u) {
2020 exploit_singleton_column_in_initial_basis_ = from.exploit_singleton_column_in_initial_basis_;
2022 if (cached_has_bits & 0x00000800u) {
2023 use_dedicated_dual_feasibility_algorithm_ = from.use_dedicated_dual_feasibility_algorithm_;
2025 if (cached_has_bits & 0x00001000u) {
2026 drop_tolerance_ = from.drop_tolerance_;
2028 if (cached_has_bits & 0x00002000u) {
2029 relative_cost_perturbation_ = from.relative_cost_perturbation_;
2031 if (cached_has_bits & 0x00004000u) {
2032 relative_max_cost_perturbation_ = from.relative_max_cost_perturbation_;
2034 if (cached_has_bits & 0x00008000u) {
2035 max_number_of_reoptimizations_ = from.max_number_of_reoptimizations_;
2037 _has_bits_[1] |= cached_has_bits;
2039 if (cached_has_bits & 0x00070000u) {
2040 if (cached_has_bits & 0x00010000u) {
2041 scaling_method_ = from.scaling_method_;
2043 if (cached_has_bits & 0x00020000u) {
2044 cost_scaling_ = from.cost_scaling_;
2046 if (cached_has_bits & 0x00040000u) {
2047 initial_condition_number_threshold_ = from.initial_condition_number_threshold_;
2049 _has_bits_[1] |= cached_has_bits;
2053 void GlopParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2055 if (&from ==
this)
return;
2060 void GlopParameters::CopyFrom(
const GlopParameters& from) {
2062 if (&from ==
this)
return;
2067 bool GlopParameters::IsInitialized()
const {
2071 void GlopParameters::InternalSwap(GlopParameters* other) {
2073 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2074 swap(_has_bits_[0], other->_has_bits_[0]);
2075 swap(_has_bits_[1], other->_has_bits_[1]);
2076 ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2077 PROTOBUF_FIELD_OFFSET(GlopParameters, log_search_progress_)
2078 +
sizeof(GlopParameters::log_search_progress_)
2079 - PROTOBUF_FIELD_OFFSET(GlopParameters, use_dual_simplex_)>(
2080 reinterpret_cast<char*
>(&use_dual_simplex_),
2081 reinterpret_cast<char*
>(&other->use_dual_simplex_));
2082 swap(feasibility_rule_, other->feasibility_rule_);
2083 swap(optimization_rule_, other->optimization_rule_);
2084 swap(refactorization_threshold_, other->refactorization_threshold_);
2085 swap(recompute_reduced_costs_threshold_, other->recompute_reduced_costs_threshold_);
2086 swap(recompute_edges_norm_threshold_, other->recompute_edges_norm_threshold_);
2087 swap(primal_feasibility_tolerance_, other->primal_feasibility_tolerance_);
2088 swap(dual_feasibility_tolerance_, other->dual_feasibility_tolerance_);
2089 swap(ratio_test_zero_threshold_, other->ratio_test_zero_threshold_);
2090 swap(harris_tolerance_ratio_, other->harris_tolerance_ratio_);
2091 swap(small_pivot_threshold_, other->small_pivot_threshold_);
2092 swap(minimum_acceptable_pivot_, other->minimum_acceptable_pivot_);
2093 swap(initial_basis_, other->initial_basis_);
2094 swap(basis_refactorization_period_, other->basis_refactorization_period_);
2095 swap(dualizer_threshold_, other->dualizer_threshold_);
2096 swap(solution_feasibility_tolerance_, other->solution_feasibility_tolerance_);
2097 swap(solve_dual_problem_, other->solve_dual_problem_);
2098 swap(markowitz_zlatev_parameter_, other->markowitz_zlatev_parameter_);
2099 swap(lu_factorization_pivot_threshold_, other->lu_factorization_pivot_threshold_);
2100 swap(max_time_in_seconds_, other->max_time_in_seconds_);
2101 swap(max_number_of_iterations_, other->max_number_of_iterations_);
2102 swap(markowitz_singularity_threshold_, other->markowitz_singularity_threshold_);
2103 swap(use_scaling_, other->use_scaling_);
2104 swap(use_transposed_matrix_, other->use_transposed_matrix_);
2105 swap(dynamically_adjust_refactorization_period_, other->dynamically_adjust_refactorization_period_);
2106 swap(provide_strong_optimal_guarantee_, other->provide_strong_optimal_guarantee_);
2107 swap(devex_weights_reset_period_, other->devex_weights_reset_period_);
2108 swap(dual_small_pivot_threshold_, other->dual_small_pivot_threshold_);
2109 swap(preprocessor_zero_tolerance_, other->preprocessor_zero_tolerance_);
2110 swap(objective_lower_limit_, other->objective_lower_limit_);
2111 swap(objective_upper_limit_, other->objective_upper_limit_);
2112 swap(change_status_to_imprecise_, other->change_status_to_imprecise_);
2113 swap(use_preprocessing_, other->use_preprocessing_);
2114 swap(use_middle_product_form_update_, other->use_middle_product_form_update_);
2115 swap(initialize_devex_with_column_norms_, other->initialize_devex_with_column_norms_);
2116 swap(random_seed_, other->random_seed_);
2117 swap(degenerate_ministep_factor_, other->degenerate_ministep_factor_);
2118 swap(max_deterministic_time_, other->max_deterministic_time_);
2119 swap(num_omp_threads_, other->num_omp_threads_);
2120 swap(exploit_singleton_column_in_initial_basis_, other->exploit_singleton_column_in_initial_basis_);
2121 swap(use_dedicated_dual_feasibility_algorithm_, other->use_dedicated_dual_feasibility_algorithm_);
2122 swap(drop_tolerance_, other->drop_tolerance_);
2123 swap(relative_cost_perturbation_, other->relative_cost_perturbation_);
2124 swap(relative_max_cost_perturbation_, other->relative_max_cost_perturbation_);
2125 swap(max_number_of_reoptimizations_, other->max_number_of_reoptimizations_);
2126 swap(scaling_method_, other->scaling_method_);
2127 swap(cost_scaling_, other->cost_scaling_);
2128 swap(initial_condition_number_threshold_, other->initial_condition_number_threshold_);
2131 ::PROTOBUF_NAMESPACE_ID::Metadata GlopParameters::GetMetadata()
const {
2132 return GetMetadataStatic();
2139 PROTOBUF_NAMESPACE_OPEN
2141 return Arena::CreateMessageInternal< ::operations_research::glop::GlopParameters >(arena);
2143 PROTOBUF_NAMESPACE_CLOSE
2146 #include <google/protobuf/port_undef.inc>
static void set_has_log_search_progress(HasBits *has_bits)
static void set_has_num_omp_threads(HasBits *has_bits)
static void set_has_provide_strong_optimal_guarantee(HasBits *has_bits)
static void set_has_use_dedicated_dual_feasibility_algorithm(HasBits *has_bits)
decltype(std::declval< GlopParameters >()._has_bits_) HasBits
static void set_has_exploit_singleton_column_in_initial_basis(HasBits *has_bits)
static void set_has_recompute_edges_norm_threshold(HasBits *has_bits)
static void set_has_max_number_of_reoptimizations(HasBits *has_bits)
static void set_has_initialize_devex_with_column_norms(HasBits *has_bits)
static void set_has_relative_cost_perturbation(HasBits *has_bits)
static void set_has_lu_factorization_pivot_threshold(HasBits *has_bits)
static void set_has_markowitz_zlatev_parameter(HasBits *has_bits)
static void set_has_objective_lower_limit(HasBits *has_bits)
static void set_has_max_time_in_seconds(HasBits *has_bits)
static void set_has_use_preprocessing(HasBits *has_bits)
static void set_has_solution_feasibility_tolerance(HasBits *has_bits)
static void set_has_max_deterministic_time(HasBits *has_bits)
static void set_has_dual_small_pivot_threshold(HasBits *has_bits)
static void set_has_change_status_to_imprecise(HasBits *has_bits)
static void set_has_refactorization_threshold(HasBits *has_bits)
static void set_has_scaling_method(HasBits *has_bits)
static void set_has_dynamically_adjust_refactorization_period(HasBits *has_bits)
static void set_has_drop_tolerance(HasBits *has_bits)
static void set_has_markowitz_singularity_threshold(HasBits *has_bits)
static void set_has_dual_feasibility_tolerance(HasBits *has_bits)
static void set_has_objective_upper_limit(HasBits *has_bits)
static void set_has_initial_condition_number_threshold(HasBits *has_bits)
static void set_has_harris_tolerance_ratio(HasBits *has_bits)
static void set_has_use_transposed_matrix(HasBits *has_bits)
static void set_has_relative_max_cost_perturbation(HasBits *has_bits)
static void set_has_dualizer_threshold(HasBits *has_bits)
static void set_has_use_dual_simplex(HasBits *has_bits)
static void set_has_cost_scaling(HasBits *has_bits)
static void set_has_ratio_test_zero_threshold(HasBits *has_bits)
static void set_has_recompute_reduced_costs_threshold(HasBits *has_bits)
static void set_has_use_scaling(HasBits *has_bits)
static void set_has_optimization_rule(HasBits *has_bits)
static void set_has_basis_refactorization_period(HasBits *has_bits)
static void set_has_solve_dual_problem(HasBits *has_bits)
static void set_has_degenerate_ministep_factor(HasBits *has_bits)
static void set_has_devex_weights_reset_period(HasBits *has_bits)
static void set_has_max_number_of_iterations(HasBits *has_bits)
static void set_has_allow_simplex_algorithm_change(HasBits *has_bits)
static void set_has_use_middle_product_form_update(HasBits *has_bits)
static void set_has_primal_feasibility_tolerance(HasBits *has_bits)
static void set_has_preprocessor_zero_tolerance(HasBits *has_bits)
static void set_has_feasibility_rule(HasBits *has_bits)
static void set_has_perturb_costs_in_dual_simplex(HasBits *has_bits)
static void set_has_small_pivot_threshold(HasBits *has_bits)
static void set_has_random_seed(HasBits *has_bits)
static void set_has_initial_basis(HasBits *has_bits)
static void set_has_minimum_acceptable_pivot(HasBits *has_bits)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_PricingRule_descriptor()
bool GlopParameters_CostScalingAlgorithm_IsValid(int value)
GlopParameters_SolverBehavior
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_ScalingAlgorithm_descriptor()
bool GlopParameters_InitialBasisHeuristic_IsValid(int value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT GlopParametersDefaultTypeInternal _GlopParameters_default_instance_
bool GlopParameters_SolverBehavior_IsValid(int value)
GlopParameters_ScalingAlgorithm
GlopParameters_PricingRule
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_SolverBehavior_descriptor()
GlopParameters_CostScalingAlgorithm
bool GlopParameters_PricingRule_IsValid(int value)
bool GlopParameters_ScalingAlgorithm_IsValid(int value)
GlopParameters_InitialBasisHeuristic
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_InitialBasisHeuristic_descriptor()
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_CostScalingAlgorithm_descriptor()
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
Collection of objects used to extend the Constraint Solver library.
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fglop_2fparameters_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fglop_2fparameters_2eproto_once
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fglop_2fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fglop_2fparameters_2eproto[1]
PROTOBUF_ATTRIBUTE_WEAK ::PROTOBUF_NAMESPACE_ID::Metadata descriptor_table_ortools_2fglop_2fparameters_2eproto_metadata_getter(int index)
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fglop_2fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::glop::GlopParameters * Arena::CreateMaybeMessage< ::operations_research::glop::GlopParameters >(Arena *arena)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fglop_2fparameters_2eproto[5]
~GlopParametersDefaultTypeInternal()
constexpr GlopParametersDefaultTypeInternal()