OR-Tools  8.0
sat_parameters.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/sat_parameters.proto
3 
5 
6 #include <algorithm>
7 
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>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 namespace operations_research {
18 namespace sat {
20  public:
21  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SatParameters> _instance;
23 } // namespace sat
24 } // namespace operations_research
26  GOOGLE_PROTOBUF_VERIFY_VERSION;
27 
28  ::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.DefaultConstruct();
29  *::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get_mutable() = std::string("LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART", 65);
30  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyString(
31  ::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get_mutable());
32  {
35  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
36  }
37  ::operations_research::sat::SatParameters::InitAsDefaultInstance();
38 }
39 
40 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SatParameters_ortools_2fsat_2fsat_5fparameters_2eproto =
41  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_SatParameters_ortools_2fsat_2fsat_5fparameters_2eproto}, {}};
42 
43 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fsat_5fparameters_2eproto[1];
44 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_ortools_2fsat_2fsat_5fparameters_2eproto[11];
45 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fsat_2fsat_5fparameters_2eproto = nullptr;
46 
48  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _has_bits_),
49  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, _internal_metadata_),
50  ~0u, // no _extensions_
51  ~0u, // no _oneof_case_
52  ~0u, // no _weak_field_map_
53  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, name_),
54  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, preferred_variable_order_),
55  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, initial_polarity_),
56  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_phase_saving_),
57  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, polarity_rephase_increment_),
58  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, random_polarity_ratio_),
59  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, random_branches_ratio_),
60  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_erwa_heuristic_),
61  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, initial_variables_activity_),
62  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, also_bump_variables_in_conflict_reasons_),
63  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, minimization_algorithm_),
64  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, binary_minimization_algorithm_),
65  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, subsumption_during_conflict_analysis_),
66  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, clause_cleanup_period_),
67  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, clause_cleanup_target_),
68  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, clause_cleanup_protection_),
69  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, clause_cleanup_lbd_bound_),
70  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, clause_cleanup_ordering_),
71  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, pb_cleanup_increment_),
72  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, pb_cleanup_ratio_),
73  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, minimize_with_propagation_restart_period_),
74  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, minimize_with_propagation_num_decisions_),
75  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, variable_activity_decay_),
76  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_variable_activity_value_),
77  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, glucose_max_decay_),
78  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, glucose_decay_increment_),
79  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, glucose_decay_increment_period_),
80  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, clause_activity_decay_),
81  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_clause_activity_value_),
82  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, restart_algorithms_),
83  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, default_restart_algorithms_),
84  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, restart_period_),
85  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, restart_running_window_size_),
86  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, restart_dl_average_ratio_),
87  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, restart_lbd_average_ratio_),
88  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_blocking_restart_),
89  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, blocking_restart_window_size_),
90  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, blocking_restart_multiplier_),
91  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, num_conflicts_before_strategy_changes_),
92  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, strategy_change_increase_ratio_),
93  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_time_in_seconds_),
94  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_deterministic_time_),
95  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_number_of_conflicts_),
96  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_memory_in_mb_),
97  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, absolute_gap_limit_),
98  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, relative_gap_limit_),
99  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, treat_binary_clauses_separately_),
100  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, random_seed_),
101  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, log_search_progress_),
102  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_pb_resolution_),
103  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, minimize_reduction_during_pb_resolution_),
104  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, count_assumption_levels_in_lbd_),
105  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, presolve_bve_threshold_),
106  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, presolve_bve_clause_weight_),
107  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, presolve_probing_deterministic_time_limit_),
108  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, presolve_blocked_clause_),
109  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, presolve_use_bva_),
110  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, presolve_bva_threshold_),
111  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_presolve_iterations_),
112  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cp_model_presolve_),
113  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cp_model_postsolve_with_full_solver_),
114  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cp_model_max_num_presolve_operations_),
115  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cp_model_probing_level_),
116  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cp_model_use_sat_presolve_),
117  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_sat_inprocessing_),
118  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, expand_element_constraints_),
119  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, expand_automaton_constraints_),
120  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, expand_table_constraints_),
121  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, expand_alldiff_constraints_),
122  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, merge_no_overlap_work_limit_),
123  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, merge_at_most_one_work_limit_),
124  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, presolve_substitution_level_),
125  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_optimization_hints_),
126  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, minimize_core_),
127  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, find_multiple_cores_),
128  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cover_optimization_),
129  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_sat_assumption_order_),
130  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_sat_reverse_assumption_order_),
131  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_sat_stratification_),
132  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_precedences_in_disjunctive_constraint_),
133  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_overload_checker_in_cumulative_constraint_),
134  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_timetable_edge_finding_in_cumulative_constraint_),
135  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_disjunctive_constraint_in_cumulative_constraint_),
136  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, linearization_level_),
137  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, boolean_encoding_level_),
138  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_num_cuts_),
139  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, only_add_cuts_at_level_zero_),
140  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, add_knapsack_cuts_),
141  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, add_cg_cuts_),
142  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, add_mir_cuts_),
143  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, add_zero_half_cuts_),
144  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, add_clique_cuts_),
145  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_all_diff_cut_size_),
146  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, add_lin_max_cuts_),
147  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_integer_rounding_scaling_),
148  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, add_lp_constraints_lazily_),
149  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, min_orthogonality_for_lp_constraints_),
150  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_cut_rounds_at_level_zero_),
151  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, max_consecutive_inactive_count_),
152  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cut_max_active_count_value_),
153  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cut_active_count_decay_),
154  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, cut_cleanup_target_),
155  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, new_constraints_batch_size_),
156  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, search_branching_),
157  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, hint_conflict_limit_),
158  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, repair_hint_),
159  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, exploit_integer_lp_solution_),
160  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, exploit_all_lp_solution_),
161  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, exploit_best_solution_),
162  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, exploit_relaxation_solution_),
163  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, exploit_objective_),
164  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, probing_period_at_root_),
165  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, pseudo_cost_reliability_threshold_),
166  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, optimize_with_core_),
167  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, binary_search_num_conflicts_),
168  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, optimize_with_max_hs_),
169  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, enumerate_all_solutions_),
170  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, fill_tightened_domains_in_response_),
171  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, instantiate_all_variables_),
172  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, auto_detect_greater_than_at_least_one_of_),
173  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, stop_after_first_solution_),
174  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, stop_after_presolve_),
175  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, num_search_workers_),
176  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, interleave_search_),
177  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, interleave_batch_size_),
178  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, reduce_memory_usage_in_interleave_mode_),
179  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, share_objective_bounds_),
180  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, share_level_zero_bounds_),
181  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_lns_only_),
182  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, lns_focus_on_decision_variables_),
183  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_rins_lns_),
184  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_feasibility_pump_),
185  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, fp_rounding_),
186  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_relaxation_lns_),
187  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, diversify_lns_params_),
188  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, randomize_search_),
189  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, search_randomization_tolerance_),
190  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_optional_variables_),
191  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_exact_lp_reason_),
192  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_branching_in_lp_),
193  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_combined_no_overlap_),
194  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, catch_sigint_signal_),
195  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, use_implied_bounds_),
196  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, mip_max_bound_),
197  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, mip_var_scaling_),
198  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, mip_automatically_scale_variables_),
199  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, mip_wanted_precision_),
200  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, mip_max_activity_exponent_),
201  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SatParameters, mip_check_precision_),
202  1,
203  2,
204  50,
205  67,
206  49,
207  5,
208  4,
209  8,
210  14,
211  9,
212  51,
213  63,
214  68,
215  52,
216  53,
217  6,
218  77,
219  7,
220  71,
221  72,
222  95,
223  96,
224  54,
225  55,
226  58,
227  59,
228  60,
229  56,
230  57,
231  ~0u,
232  0,
233  61,
234  79,
235  78,
236  83,
237  10,
238  80,
239  81,
240  12,
241  13,
242  64,
243  82,
244  65,
245  66,
246  47,
247  48,
248  69,
249  62,
250  11,
251  21,
252  22,
253  70,
254  74,
255  76,
256  75,
257  89,
258  90,
259  84,
260  136,
261  91,
262  23,
263  46,
264  100,
265  92,
266  24,
267  107,
268  108,
269  109,
270  16,
271  138,
272  139,
273  137,
274  110,
275  85,
276  86,
277  87,
278  3,
279  17,
280  73,
281  88,
282  18,
283  19,
284  112,
285  93,
286  99,
287  94,
288  33,
289  34,
290  113,
291  114,
292  115,
293  131,
294  140,
295  132,
296  106,
297  133,
298  105,
299  143,
300  111,
301  142,
302  145,
303  144,
304  117,
305  15,
306  141,
307  35,
308  134,
309  101,
310  36,
311  25,
312  102,
313  45,
314  116,
315  26,
316  97,
317  27,
318  28,
319  41,
320  103,
321  104,
322  42,
323  43,
324  98,
325  44,
326  135,
327  29,
328  127,
329  128,
330  30,
331  31,
332  129,
333  130,
334  146,
335  32,
336  37,
337  38,
338  20,
339  118,
340  119,
341  39,
342  40,
343  120,
344  121,
345  122,
346  123,
347  147,
348  124,
349  126,
350  125,
351 };
352 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
353  { 0, 154, sizeof(::operations_research::sat::SatParameters)},
354 };
355 
356 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
357  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SatParameters_default_instance_),
358 };
359 
360 const char descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
361  "\n ortools/sat/sat_parameters.proto\022\027oper"
362  "ations_research.sat\"\226\?\n\rSatParameters\022\017\n"
363  "\004name\030\253\001 \001(\t:\000\022`\n\030preferred_variable_ord"
364  "er\030\001 \001(\01624.operations_research.sat.SatPa"
365  "rameters.VariableOrder:\010IN_ORDER\022Y\n\020init"
366  "ial_polarity\030\002 \001(\0162/.operations_research"
367  ".sat.SatParameters.Polarity:\016POLARITY_FA"
368  "LSE\022\036\n\020use_phase_saving\030, \001(\010:\004true\022)\n\032p"
369  "olarity_rephase_increment\030\250\001 \001(\005:\0041000\022 "
370  "\n\025random_polarity_ratio\030- \001(\001:\0010\022 \n\025rand"
371  "om_branches_ratio\030 \001(\001:\0010\022!\n\022use_erwa_h"
372  "euristic\030K \001(\010:\005false\022%\n\032initial_variabl"
373  "es_activity\030L \001(\001:\0010\0226\n\'also_bump_variab"
374  "les_in_conflict_reasons\030M \001(\010:\005false\022o\n\026"
375  "minimization_algorithm\030\004 \001(\0162D.operation"
376  "s_research.sat.SatParameters.ConflictMin"
377  "imizationAlgorithm:\tRECURSIVE\022\202\001\n\035binary"
378  "_minimization_algorithm\030\" \001(\0162@.operatio"
379  "ns_research.sat.SatParameters.BinaryMini"
380  "zationAlgorithm:\031BINARY_MINIMIZATION_FIR"
381  "ST\0222\n$subsumption_during_conflict_analys"
382  "is\0308 \001(\010:\004true\022$\n\025clause_cleanup_period\030"
383  "\013 \001(\005:\00510000\022$\n\025clause_cleanup_target\030\r "
384  "\001(\005:\00510000\022k\n\031clause_cleanup_protection\030"
385  ": \001(\01627.operations_research.sat.SatParam"
386  "eters.ClauseProtection:\017PROTECTION_NONE\022"
387  "#\n\030clause_cleanup_lbd_bound\030; \001(\005:\0015\022g\n\027"
388  "clause_cleanup_ordering\030< \001(\01625.operatio"
389  "ns_research.sat.SatParameters.ClauseOrde"
390  "ring:\017CLAUSE_ACTIVITY\022!\n\024pb_cleanup_incr"
391  "ement\030. \001(\005:\003200\022\035\n\020pb_cleanup_ratio\030/ \001"
392  "(\001:\0030.5\0224\n(minimize_with_propagation_res"
393  "tart_period\030` \001(\005:\00210\0225\n\'minimize_with_p"
394  "ropagation_num_decisions\030a \001(\005:\0041000\022$\n\027"
395  "variable_activity_decay\030\017 \001(\001:\0030.8\022+\n\033ma"
396  "x_variable_activity_value\030\020 \001(\001:\0061e+100\022"
397  "\037\n\021glucose_max_decay\030\026 \001(\001:\0040.95\022%\n\027gluc"
398  "ose_decay_increment\030\027 \001(\001:\0040.01\022,\n\036gluco"
399  "se_decay_increment_period\030\030 \001(\005:\0045000\022$\n"
400  "\025clause_activity_decay\030\021 \001(\001:\0050.999\022(\n\031m"
401  "ax_clause_activity_value\030\022 \001(\001:\0051e+20\022S\n"
402  "\022restart_algorithms\030= \003(\01627.operations_r"
403  "esearch.sat.SatParameters.RestartAlgorit"
404  "hm\022e\n\032default_restart_algorithms\030F \001(\t:A"
405  "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,"
406  "DL_MOVING_AVERAGE_RESTART\022\032\n\016restart_per"
407  "iod\030\036 \001(\005:\00250\022\'\n\033restart_running_window_"
408  "size\030> \001(\005:\00250\022#\n\030restart_dl_average_rat"
409  "io\030\? \001(\001:\0011\022$\n\031restart_lbd_average_ratio"
410  "\030G \001(\001:\0011\022#\n\024use_blocking_restart\030@ \001(\010:"
411  "\005false\022*\n\034blocking_restart_window_size\030A"
412  " \001(\005:\0045000\022(\n\033blocking_restart_multiplie"
413  "r\030B \001(\001:\0031.4\0220\n%num_conflicts_before_str"
414  "ategy_changes\030D \001(\005:\0010\022)\n\036strategy_chang"
415  "e_increase_ratio\030E \001(\001:\0010\022 \n\023max_time_in"
416  "_seconds\030$ \001(\001:\003inf\022#\n\026max_deterministic"
417  "_time\030C \001(\001:\003inf\0224\n\027max_number_of_confli"
418  "cts\030% \001(\003:\0239223372036854775807\022\037\n\020max_me"
419  "mory_in_mb\030( \001(\003:\00510000\022\036\n\022absolute_gap_"
420  "limit\030\237\001 \001(\001:\0010\022\036\n\022relative_gap_limit\030\240\001"
421  " \001(\001:\0010\022-\n\037treat_binary_clauses_separate"
422  "ly\030! \001(\010:\004true\022\026\n\013random_seed\030\037 \001(\005:\0011\022\""
423  "\n\023log_search_progress\030) \001(\010:\005false\022 \n\021us"
424  "e_pb_resolution\030+ \001(\010:\005false\0226\n\'minimize"
425  "_reduction_during_pb_resolution\0300 \001(\010:\005f"
426  "alse\022,\n\036count_assumption_levels_in_lbd\0301"
427  " \001(\010:\004true\022#\n\026presolve_bve_threshold\0306 \001"
428  "(\005:\003500\022%\n\032presolve_bve_clause_weight\0307 "
429  "\001(\005:\0013\0225\n)presolve_probing_deterministic"
430  "_time_limit\0309 \001(\001:\00230\022%\n\027presolve_blocke"
431  "d_clause\030X \001(\010:\004true\022\036\n\020presolve_use_bva"
432  "\030H \001(\010:\004true\022!\n\026presolve_bva_threshold\030I"
433  " \001(\005:\0011\022#\n\027max_presolve_iterations\030\212\001 \001("
434  "\005:\0013\022\037\n\021cp_model_presolve\030V \001(\010:\004true\0223\n"
435  "#cp_model_postsolve_with_full_solver\030\242\001 "
436  "\001(\010:\005false\0220\n$cp_model_max_num_presolve_"
437  "operations\030\227\001 \001(\005:\0010\022!\n\026cp_model_probing"
438  "_level\030n \001(\005:\0012\022\'\n\031cp_model_use_sat_pres"
439  "olve\030] \001(\010:\004true\022$\n\024use_sat_inprocessing"
440  "\030\243\001 \001(\010:\005false\022)\n\032expand_element_constra"
441  "ints\030\214\001 \001(\010:\004true\022+\n\034expand_automaton_co"
442  "nstraints\030\217\001 \001(\010:\004true\022\'\n\030expand_table_c"
443  "onstraints\030\236\001 \001(\010:\004true\022*\n\032expand_alldif"
444  "f_constraints\030\252\001 \001(\010:\005false\0223\n\033merge_no_"
445  "overlap_work_limit\030\221\001 \001(\001:\r1000000000000"
446  "\0220\n\034merge_at_most_one_work_limit\030\222\001 \001(\001:"
447  "\t100000000\022\'\n\033presolve_substitution_leve"
448  "l\030\223\001 \001(\005:\0011\022$\n\026use_optimization_hints\030# "
449  "\001(\010:\004true\022\033\n\rminimize_core\0302 \001(\010:\004true\022!"
450  "\n\023find_multiple_cores\030T \001(\010:\004true\022 \n\022cov"
451  "er_optimization\030Y \001(\010:\004true\022x\n\030max_sat_a"
452  "ssumption_order\0303 \001(\0162<.operations_resea"
453  "rch.sat.SatParameters.MaxSatAssumptionOr"
454  "der:\030DEFAULT_ASSUMPTION_ORDER\022/\n max_sat"
455  "_reverse_assumption_order\0304 \001(\010:\005false\022|"
456  "\n\026max_sat_stratification\0305 \001(\0162D.operati"
457  "ons_research.sat.SatParameters.MaxSatStr"
458  "atificationAlgorithm:\026STRATIFICATION_DES"
459  "CENT\0227\n)use_precedences_in_disjunctive_c"
460  "onstraint\030J \001(\010:\004true\022<\n-use_overload_ch"
461  "ecker_in_cumulative_constraint\030N \001(\010:\005fa"
462  "lse\022B\n3use_timetable_edge_finding_in_cum"
463  "ulative_constraint\030O \001(\010:\005false\022A\n3use_d"
464  "isjunctive_constraint_in_cumulative_cons"
465  "traint\030P \001(\010:\004true\022\036\n\023linearization_leve"
466  "l\030Z \001(\005:\0011\022!\n\026boolean_encoding_level\030k \001"
467  "(\005:\0011\022\033\n\014max_num_cuts\030[ \001(\005:\00510000\022*\n\033on"
468  "ly_add_cuts_at_level_zero\030\\ \001(\010:\005false\022 "
469  "\n\021add_knapsack_cuts\030o \001(\010:\005false\022\031\n\013add_"
470  "cg_cuts\030u \001(\010:\004true\022\032\n\014add_mir_cuts\030x \001("
471  "\010:\004true\022!\n\022add_zero_half_cuts\030\251\001 \001(\010:\004tr"
472  "ue\022\036\n\017add_clique_cuts\030\254\001 \001(\010:\004true\022!\n\025ma"
473  "x_all_diff_cut_size\030\224\001 \001(\005:\0017\022\037\n\020add_lin"
474  "_max_cuts\030\230\001 \001(\010:\004true\022)\n\034max_integer_ro"
475  "unding_scaling\030w \001(\005:\003600\022\'\n\031add_lp_cons"
476  "traints_lazily\030p \001(\010:\004true\0222\n$min_orthog"
477  "onality_for_lp_constraints\030s \001(\001:\0040.05\022("
478  "\n\034max_cut_rounds_at_level_zero\030\232\001 \001(\005:\0011"
479  "\022+\n\036max_consecutive_inactive_count\030y \001(\005"
480  ":\003100\0220\n\032cut_max_active_count_value\030\233\001 \001"
481  "(\001:\01310000000000\022$\n\026cut_active_count_deca"
482  "y\030\234\001 \001(\001:\0030.8\022!\n\022cut_cleanup_target\030\235\001 \001"
483  "(\005:\0041000\022&\n\032new_constraints_batch_size\030z"
484  " \001(\005:\00250\022b\n\020search_branching\030R \001(\01626.ope"
485  "rations_research.sat.SatParameters.Searc"
486  "hBranching:\020AUTOMATIC_SEARCH\022 \n\023hint_con"
487  "flict_limit\030\231\001 \001(\005:\00210\022\033\n\013repair_hint\030\247\001"
488  " \001(\010:\005false\022)\n\033exploit_integer_lp_soluti"
489  "on\030^ \001(\010:\004true\022%\n\027exploit_all_lp_solutio"
490  "n\030t \001(\010:\004true\022%\n\025exploit_best_solution\030\202"
491  "\001 \001(\010:\005false\022+\n\033exploit_relaxation_solut"
492  "ion\030\241\001 \001(\010:\005false\022 \n\021exploit_objective\030\203"
493  "\001 \001(\010:\004true\022\"\n\026probing_period_at_root\030\216\001"
494  " \001(\003:\0010\022.\n!pseudo_cost_reliability_thres"
495  "hold\030{ \001(\003:\003100\022!\n\022optimize_with_core\030S "
496  "\001(\010:\005false\022\'\n\033binary_search_num_conflict"
497  "s\030c \001(\005:\002-1\022#\n\024optimize_with_max_hs\030U \001("
498  "\010:\005false\022&\n\027enumerate_all_solutions\030W \001("
499  "\010:\005false\0222\n\"fill_tightened_domains_in_re"
500  "sponse\030\204\001 \001(\010:\005false\022\'\n\031instantiate_all_"
501  "variables\030j \001(\010:\004true\0226\n(auto_detect_gre"
502  "ater_than_at_least_one_of\030_ \001(\010:\004true\022(\n"
503  "\031stop_after_first_solution\030b \001(\010:\005false\022"
504  "#\n\023stop_after_presolve\030\225\001 \001(\010:\005false\022\035\n\022"
505  "num_search_workers\030d \001(\005:\0011\022!\n\021interleav"
506  "e_search\030\210\001 \001(\010:\005false\022!\n\025interleave_bat"
507  "ch_size\030\206\001 \001(\005:\0011\0226\n&reduce_memory_usage"
508  "_in_interleave_mode\030\215\001 \001(\010:\005false\022$\n\026sha"
509  "re_objective_bounds\030q \001(\010:\004true\022%\n\027share"
510  "_level_zero_bounds\030r \001(\010:\004true\022\033\n\014use_ln"
511  "s_only\030e \001(\010:\005false\022.\n\037lns_focus_on_deci"
512  "sion_variables\030i \001(\010:\005false\022\033\n\014use_rins_"
513  "lns\030\201\001 \001(\010:\004true\022#\n\024use_feasibility_pump"
514  "\030\244\001 \001(\010:\004true\022c\n\013fp_rounding\030\245\001 \001(\01627.op"
515  "erations_research.sat.SatParameters.FPRo"
516  "undingMethod:\024PROPAGATION_ASSISTED\022\"\n\022us"
517  "e_relaxation_lns\030\226\001 \001(\010:\005false\022$\n\024divers"
518  "ify_lns_params\030\211\001 \001(\010:\005false\022\037\n\020randomiz"
519  "e_search\030g \001(\010:\005false\022)\n\036search_randomiz"
520  "ation_tolerance\030h \001(\003:\0010\022$\n\026use_optional"
521  "_variables\030l \001(\010:\004true\022!\n\023use_exact_lp_r"
522  "eason\030m \001(\010:\004true\022#\n\023use_branching_in_lp"
523  "\030\213\001 \001(\010:\005false\022\'\n\027use_combined_no_overla"
524  "p\030\205\001 \001(\010:\005false\022\"\n\023catch_sigint_signal\030\207"
525  "\001 \001(\010:\004true\022!\n\022use_implied_bounds\030\220\001 \001(\010"
526  ":\004true\022\037\n\rmip_max_bound\030| \001(\001:\01010000000\022"
527  "\032\n\017mip_var_scaling\030} \001(\001:\0011\0220\n!mip_autom"
528  "atically_scale_variables\030\246\001 \001(\010:\004true\022#\n"
529  "\024mip_wanted_precision\030~ \001(\001:\0051e-06\022%\n\031mi"
530  "p_max_activity_exponent\030\177 \001(\005:\00253\022#\n\023mip"
531  "_check_precision\030\200\001 \001(\001:\0050.001\"H\n\rVariab"
532  "leOrder\022\014\n\010IN_ORDER\020\000\022\024\n\020IN_REVERSE_ORDE"
533  "R\020\001\022\023\n\017IN_RANDOM_ORDER\020\002\"\206\001\n\010Polarity\022\021\n"
534  "\rPOLARITY_TRUE\020\000\022\022\n\016POLARITY_FALSE\020\001\022\023\n\017"
535  "POLARITY_RANDOM\020\002\022\032\n\026POLARITY_WEIGHTED_S"
536  "IGN\020\003\022\"\n\036POLARITY_REVERSE_WEIGHTED_SIGN\020"
537  "\004\"V\n\035ConflictMinimizationAlgorithm\022\010\n\004NO"
538  "NE\020\000\022\n\n\006SIMPLE\020\001\022\r\n\tRECURSIVE\020\002\022\020\n\014EXPER"
539  "IMENTAL\020\003\"\340\001\n\031BinaryMinizationAlgorithm\022"
540  "\032\n\026NO_BINARY_MINIMIZATION\020\000\022\035\n\031BINARY_MI"
541  "NIMIZATION_FIRST\020\001\0227\n3BINARY_MINIMIZATIO"
542  "N_FIRST_WITH_TRANSITIVE_REDUCTION\020\004\022)\n%B"
543  "INARY_MINIMIZATION_WITH_REACHABILITY\020\002\022$"
544  "\n EXPERIMENTAL_BINARY_MINIMIZATION\020\003\"R\n\020"
545  "ClauseProtection\022\023\n\017PROTECTION_NONE\020\000\022\025\n"
546  "\021PROTECTION_ALWAYS\020\001\022\022\n\016PROTECTION_LBD\020\002"
547  "\"5\n\016ClauseOrdering\022\023\n\017CLAUSE_ACTIVITY\020\000\022"
548  "\016\n\nCLAUSE_LBD\020\001\"\206\001\n\020RestartAlgorithm\022\016\n\n"
549  "NO_RESTART\020\000\022\020\n\014LUBY_RESTART\020\001\022\035\n\031DL_MOV"
550  "ING_AVERAGE_RESTART\020\002\022\036\n\032LBD_MOVING_AVER"
551  "AGE_RESTART\020\003\022\021\n\rFIXED_RESTART\020\004\"t\n\025MaxS"
552  "atAssumptionOrder\022\034\n\030DEFAULT_ASSUMPTION_"
553  "ORDER\020\000\022\035\n\031ORDER_ASSUMPTION_BY_DEPTH\020\001\022\036"
554  "\n\032ORDER_ASSUMPTION_BY_WEIGHT\020\002\"o\n\035MaxSat"
555  "StratificationAlgorithm\022\027\n\023STRATIFICATIO"
556  "N_NONE\020\000\022\032\n\026STRATIFICATION_DESCENT\020\001\022\031\n\025"
557  "STRATIFICATION_ASCENT\020\002\"\260\001\n\017SearchBranch"
558  "ing\022\024\n\020AUTOMATIC_SEARCH\020\000\022\020\n\014FIXED_SEARC"
559  "H\020\001\022\024\n\020PORTFOLIO_SEARCH\020\002\022\r\n\tLP_SEARCH\020\003"
560  "\022\026\n\022PSEUDO_COST_SEARCH\020\004\022\'\n#PORTFOLIO_WI"
561  "TH_QUICK_RESTART_SEARCH\020\005\022\017\n\013HINT_SEARCH"
562  "\020\006\"h\n\020FPRoundingMethod\022\023\n\017NEAREST_INTEGE"
563  "R\020\000\022\016\n\nLOCK_BASED\020\001\022\025\n\021ACTIVE_LOCK_BASED"
564  "\020\003\022\030\n\024PROPAGATION_ASSISTED\020\002B\032\n\026com.goog"
565  "le.ortools.satP\001"
566  ;
567 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_deps[1] = {
568 };
569 static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_sccs[1] = {
571 };
572 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_once;
573 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto = {
574  false, false, descriptor_table_protodef_ortools_2fsat_2fsat_5fparameters_2eproto, "ortools/sat/sat_parameters.proto", 8176,
578 };
579 
580 // Force running AddDescriptors() at dynamic initialization time.
581 static bool dynamic_init_dummy_ortools_2fsat_2fsat_5fparameters_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto)), true);
582 namespace operations_research {
583 namespace sat {
584 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_VariableOrder_descriptor() {
585  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
587 }
589  switch (value) {
590  case 0:
591  case 1:
592  case 2:
593  return true;
594  default:
595  return false;
596  }
597 }
598 
599 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
600 constexpr SatParameters_VariableOrder SatParameters::IN_ORDER;
601 constexpr SatParameters_VariableOrder SatParameters::IN_REVERSE_ORDER;
602 constexpr SatParameters_VariableOrder SatParameters::IN_RANDOM_ORDER;
603 constexpr SatParameters_VariableOrder SatParameters::VariableOrder_MIN;
604 constexpr SatParameters_VariableOrder SatParameters::VariableOrder_MAX;
605 constexpr int SatParameters::VariableOrder_ARRAYSIZE;
606 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
607 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_Polarity_descriptor() {
608  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
610 }
612  switch (value) {
613  case 0:
614  case 1:
615  case 2:
616  case 3:
617  case 4:
618  return true;
619  default:
620  return false;
621  }
622 }
623 
624 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
625 constexpr SatParameters_Polarity SatParameters::POLARITY_TRUE;
626 constexpr SatParameters_Polarity SatParameters::POLARITY_FALSE;
627 constexpr SatParameters_Polarity SatParameters::POLARITY_RANDOM;
628 constexpr SatParameters_Polarity SatParameters::POLARITY_WEIGHTED_SIGN;
629 constexpr SatParameters_Polarity SatParameters::POLARITY_REVERSE_WEIGHTED_SIGN;
630 constexpr SatParameters_Polarity SatParameters::Polarity_MIN;
631 constexpr SatParameters_Polarity SatParameters::Polarity_MAX;
632 constexpr int SatParameters::Polarity_ARRAYSIZE;
633 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
634 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_ConflictMinimizationAlgorithm_descriptor() {
635  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
637 }
639  switch (value) {
640  case 0:
641  case 1:
642  case 2:
643  case 3:
644  return true;
645  default:
646  return false;
647  }
648 }
649 
650 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
651 constexpr SatParameters_ConflictMinimizationAlgorithm SatParameters::NONE;
652 constexpr SatParameters_ConflictMinimizationAlgorithm SatParameters::SIMPLE;
653 constexpr SatParameters_ConflictMinimizationAlgorithm SatParameters::RECURSIVE;
654 constexpr SatParameters_ConflictMinimizationAlgorithm SatParameters::EXPERIMENTAL;
655 constexpr SatParameters_ConflictMinimizationAlgorithm SatParameters::ConflictMinimizationAlgorithm_MIN;
656 constexpr SatParameters_ConflictMinimizationAlgorithm SatParameters::ConflictMinimizationAlgorithm_MAX;
657 constexpr int SatParameters::ConflictMinimizationAlgorithm_ARRAYSIZE;
658 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
659 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_BinaryMinizationAlgorithm_descriptor() {
660  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
662 }
664  switch (value) {
665  case 0:
666  case 1:
667  case 2:
668  case 3:
669  case 4:
670  return true;
671  default:
672  return false;
673  }
674 }
675 
676 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
677 constexpr SatParameters_BinaryMinizationAlgorithm SatParameters::NO_BINARY_MINIMIZATION;
678 constexpr SatParameters_BinaryMinizationAlgorithm SatParameters::BINARY_MINIMIZATION_FIRST;
679 constexpr SatParameters_BinaryMinizationAlgorithm SatParameters::BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
680 constexpr SatParameters_BinaryMinizationAlgorithm SatParameters::BINARY_MINIMIZATION_WITH_REACHABILITY;
681 constexpr SatParameters_BinaryMinizationAlgorithm SatParameters::EXPERIMENTAL_BINARY_MINIMIZATION;
682 constexpr SatParameters_BinaryMinizationAlgorithm SatParameters::BinaryMinizationAlgorithm_MIN;
683 constexpr SatParameters_BinaryMinizationAlgorithm SatParameters::BinaryMinizationAlgorithm_MAX;
684 constexpr int SatParameters::BinaryMinizationAlgorithm_ARRAYSIZE;
685 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
686 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_ClauseProtection_descriptor() {
687  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
689 }
691  switch (value) {
692  case 0:
693  case 1:
694  case 2:
695  return true;
696  default:
697  return false;
698  }
699 }
700 
701 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
702 constexpr SatParameters_ClauseProtection SatParameters::PROTECTION_NONE;
703 constexpr SatParameters_ClauseProtection SatParameters::PROTECTION_ALWAYS;
704 constexpr SatParameters_ClauseProtection SatParameters::PROTECTION_LBD;
705 constexpr SatParameters_ClauseProtection SatParameters::ClauseProtection_MIN;
706 constexpr SatParameters_ClauseProtection SatParameters::ClauseProtection_MAX;
707 constexpr int SatParameters::ClauseProtection_ARRAYSIZE;
708 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
709 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_ClauseOrdering_descriptor() {
710  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
712 }
714  switch (value) {
715  case 0:
716  case 1:
717  return true;
718  default:
719  return false;
720  }
721 }
722 
723 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
724 constexpr SatParameters_ClauseOrdering SatParameters::CLAUSE_ACTIVITY;
725 constexpr SatParameters_ClauseOrdering SatParameters::CLAUSE_LBD;
726 constexpr SatParameters_ClauseOrdering SatParameters::ClauseOrdering_MIN;
727 constexpr SatParameters_ClauseOrdering SatParameters::ClauseOrdering_MAX;
728 constexpr int SatParameters::ClauseOrdering_ARRAYSIZE;
729 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
730 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_RestartAlgorithm_descriptor() {
731  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
733 }
735  switch (value) {
736  case 0:
737  case 1:
738  case 2:
739  case 3:
740  case 4:
741  return true;
742  default:
743  return false;
744  }
745 }
746 
747 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
748 constexpr SatParameters_RestartAlgorithm SatParameters::NO_RESTART;
749 constexpr SatParameters_RestartAlgorithm SatParameters::LUBY_RESTART;
750 constexpr SatParameters_RestartAlgorithm SatParameters::DL_MOVING_AVERAGE_RESTART;
751 constexpr SatParameters_RestartAlgorithm SatParameters::LBD_MOVING_AVERAGE_RESTART;
752 constexpr SatParameters_RestartAlgorithm SatParameters::FIXED_RESTART;
753 constexpr SatParameters_RestartAlgorithm SatParameters::RestartAlgorithm_MIN;
754 constexpr SatParameters_RestartAlgorithm SatParameters::RestartAlgorithm_MAX;
755 constexpr int SatParameters::RestartAlgorithm_ARRAYSIZE;
756 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
757 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_MaxSatAssumptionOrder_descriptor() {
758  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
760 }
762  switch (value) {
763  case 0:
764  case 1:
765  case 2:
766  return true;
767  default:
768  return false;
769  }
770 }
771 
772 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
773 constexpr SatParameters_MaxSatAssumptionOrder SatParameters::DEFAULT_ASSUMPTION_ORDER;
774 constexpr SatParameters_MaxSatAssumptionOrder SatParameters::ORDER_ASSUMPTION_BY_DEPTH;
775 constexpr SatParameters_MaxSatAssumptionOrder SatParameters::ORDER_ASSUMPTION_BY_WEIGHT;
776 constexpr SatParameters_MaxSatAssumptionOrder SatParameters::MaxSatAssumptionOrder_MIN;
777 constexpr SatParameters_MaxSatAssumptionOrder SatParameters::MaxSatAssumptionOrder_MAX;
778 constexpr int SatParameters::MaxSatAssumptionOrder_ARRAYSIZE;
779 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
780 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_MaxSatStratificationAlgorithm_descriptor() {
781  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
783 }
785  switch (value) {
786  case 0:
787  case 1:
788  case 2:
789  return true;
790  default:
791  return false;
792  }
793 }
794 
795 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
796 constexpr SatParameters_MaxSatStratificationAlgorithm SatParameters::STRATIFICATION_NONE;
797 constexpr SatParameters_MaxSatStratificationAlgorithm SatParameters::STRATIFICATION_DESCENT;
798 constexpr SatParameters_MaxSatStratificationAlgorithm SatParameters::STRATIFICATION_ASCENT;
799 constexpr SatParameters_MaxSatStratificationAlgorithm SatParameters::MaxSatStratificationAlgorithm_MIN;
800 constexpr SatParameters_MaxSatStratificationAlgorithm SatParameters::MaxSatStratificationAlgorithm_MAX;
801 constexpr int SatParameters::MaxSatStratificationAlgorithm_ARRAYSIZE;
802 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
803 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_SearchBranching_descriptor() {
804  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
806 }
808  switch (value) {
809  case 0:
810  case 1:
811  case 2:
812  case 3:
813  case 4:
814  case 5:
815  case 6:
816  return true;
817  default:
818  return false;
819  }
820 }
821 
822 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
823 constexpr SatParameters_SearchBranching SatParameters::AUTOMATIC_SEARCH;
824 constexpr SatParameters_SearchBranching SatParameters::FIXED_SEARCH;
825 constexpr SatParameters_SearchBranching SatParameters::PORTFOLIO_SEARCH;
826 constexpr SatParameters_SearchBranching SatParameters::LP_SEARCH;
827 constexpr SatParameters_SearchBranching SatParameters::PSEUDO_COST_SEARCH;
828 constexpr SatParameters_SearchBranching SatParameters::PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
829 constexpr SatParameters_SearchBranching SatParameters::HINT_SEARCH;
830 constexpr SatParameters_SearchBranching SatParameters::SearchBranching_MIN;
831 constexpr SatParameters_SearchBranching SatParameters::SearchBranching_MAX;
832 constexpr int SatParameters::SearchBranching_ARRAYSIZE;
833 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
834 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SatParameters_FPRoundingMethod_descriptor() {
835  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto);
837 }
839  switch (value) {
840  case 0:
841  case 1:
842  case 2:
843  case 3:
844  return true;
845  default:
846  return false;
847  }
848 }
849 
850 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
851 constexpr SatParameters_FPRoundingMethod SatParameters::NEAREST_INTEGER;
852 constexpr SatParameters_FPRoundingMethod SatParameters::LOCK_BASED;
853 constexpr SatParameters_FPRoundingMethod SatParameters::ACTIVE_LOCK_BASED;
854 constexpr SatParameters_FPRoundingMethod SatParameters::PROPAGATION_ASSISTED;
855 constexpr SatParameters_FPRoundingMethod SatParameters::FPRoundingMethod_MIN;
856 constexpr SatParameters_FPRoundingMethod SatParameters::FPRoundingMethod_MAX;
857 constexpr int SatParameters::FPRoundingMethod_ARRAYSIZE;
858 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
859 
860 // ===================================================================
861 
862 void SatParameters::InitAsDefaultInstance() {
863 }
865  public:
866  using HasBits = decltype(std::declval<SatParameters>()._has_bits_);
867  static void set_has_name(HasBits* has_bits) {
868  (*has_bits)[0] |= 2u;
869  }
870  static void set_has_preferred_variable_order(HasBits* has_bits) {
871  (*has_bits)[0] |= 4u;
872  }
873  static void set_has_initial_polarity(HasBits* has_bits) {
874  (*has_bits)[1] |= 262144u;
875  }
876  static void set_has_use_phase_saving(HasBits* has_bits) {
877  (*has_bits)[2] |= 8u;
878  }
880  (*has_bits)[1] |= 131072u;
881  }
882  static void set_has_random_polarity_ratio(HasBits* has_bits) {
883  (*has_bits)[0] |= 32u;
884  }
885  static void set_has_random_branches_ratio(HasBits* has_bits) {
886  (*has_bits)[0] |= 16u;
887  }
888  static void set_has_use_erwa_heuristic(HasBits* has_bits) {
889  (*has_bits)[0] |= 256u;
890  }
892  (*has_bits)[0] |= 16384u;
893  }
895  (*has_bits)[0] |= 512u;
896  }
897  static void set_has_minimization_algorithm(HasBits* has_bits) {
898  (*has_bits)[1] |= 524288u;
899  }
901  (*has_bits)[1] |= 2147483648u;
902  }
904  (*has_bits)[2] |= 16u;
905  }
906  static void set_has_clause_cleanup_period(HasBits* has_bits) {
907  (*has_bits)[1] |= 1048576u;
908  }
909  static void set_has_clause_cleanup_target(HasBits* has_bits) {
910  (*has_bits)[1] |= 2097152u;
911  }
913  (*has_bits)[0] |= 64u;
914  }
915  static void set_has_clause_cleanup_lbd_bound(HasBits* has_bits) {
916  (*has_bits)[2] |= 8192u;
917  }
918  static void set_has_clause_cleanup_ordering(HasBits* has_bits) {
919  (*has_bits)[0] |= 128u;
920  }
921  static void set_has_pb_cleanup_increment(HasBits* has_bits) {
922  (*has_bits)[2] |= 128u;
923  }
924  static void set_has_pb_cleanup_ratio(HasBits* has_bits) {
925  (*has_bits)[2] |= 256u;
926  }
928  (*has_bits)[2] |= 2147483648u;
929  }
931  (*has_bits)[3] |= 1u;
932  }
933  static void set_has_variable_activity_decay(HasBits* has_bits) {
934  (*has_bits)[1] |= 4194304u;
935  }
937  (*has_bits)[1] |= 8388608u;
938  }
939  static void set_has_glucose_max_decay(HasBits* has_bits) {
940  (*has_bits)[1] |= 67108864u;
941  }
942  static void set_has_glucose_decay_increment(HasBits* has_bits) {
943  (*has_bits)[1] |= 134217728u;
944  }
946  (*has_bits)[1] |= 268435456u;
947  }
948  static void set_has_clause_activity_decay(HasBits* has_bits) {
949  (*has_bits)[1] |= 16777216u;
950  }
952  (*has_bits)[1] |= 33554432u;
953  }
955  (*has_bits)[0] |= 1u;
956  }
957  static void set_has_restart_period(HasBits* has_bits) {
958  (*has_bits)[1] |= 536870912u;
959  }
961  (*has_bits)[2] |= 32768u;
962  }
963  static void set_has_restart_dl_average_ratio(HasBits* has_bits) {
964  (*has_bits)[2] |= 16384u;
965  }
967  (*has_bits)[2] |= 524288u;
968  }
969  static void set_has_use_blocking_restart(HasBits* has_bits) {
970  (*has_bits)[0] |= 1024u;
971  }
973  (*has_bits)[2] |= 65536u;
974  }
976  (*has_bits)[2] |= 131072u;
977  }
979  (*has_bits)[0] |= 4096u;
980  }
982  (*has_bits)[0] |= 8192u;
983  }
984  static void set_has_max_time_in_seconds(HasBits* has_bits) {
985  (*has_bits)[2] |= 1u;
986  }
987  static void set_has_max_deterministic_time(HasBits* has_bits) {
988  (*has_bits)[2] |= 262144u;
989  }
990  static void set_has_max_number_of_conflicts(HasBits* has_bits) {
991  (*has_bits)[2] |= 2u;
992  }
993  static void set_has_max_memory_in_mb(HasBits* has_bits) {
994  (*has_bits)[2] |= 4u;
995  }
996  static void set_has_absolute_gap_limit(HasBits* has_bits) {
997  (*has_bits)[1] |= 32768u;
998  }
999  static void set_has_relative_gap_limit(HasBits* has_bits) {
1000  (*has_bits)[1] |= 65536u;
1001  }
1003  (*has_bits)[2] |= 32u;
1004  }
1005  static void set_has_random_seed(HasBits* has_bits) {
1006  (*has_bits)[1] |= 1073741824u;
1007  }
1008  static void set_has_log_search_progress(HasBits* has_bits) {
1009  (*has_bits)[0] |= 2048u;
1010  }
1011  static void set_has_use_pb_resolution(HasBits* has_bits) {
1012  (*has_bits)[0] |= 2097152u;
1013  }
1015  (*has_bits)[0] |= 4194304u;
1016  }
1018  (*has_bits)[2] |= 64u;
1019  }
1020  static void set_has_presolve_bve_threshold(HasBits* has_bits) {
1021  (*has_bits)[2] |= 1024u;
1022  }
1024  (*has_bits)[2] |= 4096u;
1025  }
1027  (*has_bits)[2] |= 2048u;
1028  }
1029  static void set_has_presolve_blocked_clause(HasBits* has_bits) {
1030  (*has_bits)[2] |= 33554432u;
1031  }
1032  static void set_has_presolve_use_bva(HasBits* has_bits) {
1033  (*has_bits)[2] |= 67108864u;
1034  }
1035  static void set_has_presolve_bva_threshold(HasBits* has_bits) {
1036  (*has_bits)[2] |= 1048576u;
1037  }
1038  static void set_has_max_presolve_iterations(HasBits* has_bits) {
1039  (*has_bits)[4] |= 256u;
1040  }
1041  static void set_has_cp_model_presolve(HasBits* has_bits) {
1042  (*has_bits)[2] |= 134217728u;
1043  }
1045  (*has_bits)[0] |= 8388608u;
1046  }
1048  (*has_bits)[1] |= 16384u;
1049  }
1050  static void set_has_cp_model_probing_level(HasBits* has_bits) {
1051  (*has_bits)[3] |= 16u;
1052  }
1054  (*has_bits)[2] |= 268435456u;
1055  }
1056  static void set_has_use_sat_inprocessing(HasBits* has_bits) {
1057  (*has_bits)[0] |= 16777216u;
1058  }
1060  (*has_bits)[3] |= 2048u;
1061  }
1063  (*has_bits)[3] |= 4096u;
1064  }
1066  (*has_bits)[3] |= 8192u;
1067  }
1069  (*has_bits)[0] |= 65536u;
1070  }
1072  (*has_bits)[4] |= 1024u;
1073  }
1075  (*has_bits)[4] |= 2048u;
1076  }
1078  (*has_bits)[4] |= 512u;
1079  }
1080  static void set_has_use_optimization_hints(HasBits* has_bits) {
1081  (*has_bits)[3] |= 16384u;
1082  }
1083  static void set_has_minimize_core(HasBits* has_bits) {
1084  (*has_bits)[2] |= 2097152u;
1085  }
1086  static void set_has_find_multiple_cores(HasBits* has_bits) {
1087  (*has_bits)[2] |= 4194304u;
1088  }
1089  static void set_has_cover_optimization(HasBits* has_bits) {
1090  (*has_bits)[2] |= 8388608u;
1091  }
1093  (*has_bits)[0] |= 8u;
1094  }
1096  (*has_bits)[0] |= 131072u;
1097  }
1098  static void set_has_max_sat_stratification(HasBits* has_bits) {
1099  (*has_bits)[2] |= 512u;
1100  }
1102  (*has_bits)[2] |= 16777216u;
1103  }
1105  (*has_bits)[0] |= 262144u;
1106  }
1108  (*has_bits)[0] |= 524288u;
1109  }
1111  (*has_bits)[3] |= 65536u;
1112  }
1113  static void set_has_linearization_level(HasBits* has_bits) {
1114  (*has_bits)[2] |= 536870912u;
1115  }
1116  static void set_has_boolean_encoding_level(HasBits* has_bits) {
1117  (*has_bits)[3] |= 8u;
1118  }
1119  static void set_has_max_num_cuts(HasBits* has_bits) {
1120  (*has_bits)[2] |= 1073741824u;
1121  }
1123  (*has_bits)[1] |= 2u;
1124  }
1125  static void set_has_add_knapsack_cuts(HasBits* has_bits) {
1126  (*has_bits)[1] |= 4u;
1127  }
1128  static void set_has_add_cg_cuts(HasBits* has_bits) {
1129  (*has_bits)[3] |= 131072u;
1130  }
1131  static void set_has_add_mir_cuts(HasBits* has_bits) {
1132  (*has_bits)[3] |= 262144u;
1133  }
1134  static void set_has_add_zero_half_cuts(HasBits* has_bits) {
1135  (*has_bits)[3] |= 524288u;
1136  }
1137  static void set_has_add_clique_cuts(HasBits* has_bits) {
1138  (*has_bits)[4] |= 8u;
1139  }
1140  static void set_has_max_all_diff_cut_size(HasBits* has_bits) {
1141  (*has_bits)[4] |= 4096u;
1142  }
1143  static void set_has_add_lin_max_cuts(HasBits* has_bits) {
1144  (*has_bits)[4] |= 16u;
1145  }
1147  (*has_bits)[3] |= 1024u;
1148  }
1150  (*has_bits)[4] |= 32u;
1151  }
1153  (*has_bits)[3] |= 512u;
1154  }
1156  (*has_bits)[4] |= 32768u;
1157  }
1159  (*has_bits)[3] |= 32768u;
1160  }
1162  (*has_bits)[4] |= 16384u;
1163  }
1164  static void set_has_cut_active_count_decay(HasBits* has_bits) {
1165  (*has_bits)[4] |= 131072u;
1166  }
1167  static void set_has_cut_cleanup_target(HasBits* has_bits) {
1168  (*has_bits)[4] |= 65536u;
1169  }
1171  (*has_bits)[3] |= 2097152u;
1172  }
1173  static void set_has_search_branching(HasBits* has_bits) {
1174  (*has_bits)[0] |= 32768u;
1175  }
1176  static void set_has_hint_conflict_limit(HasBits* has_bits) {
1177  (*has_bits)[4] |= 8192u;
1178  }
1179  static void set_has_repair_hint(HasBits* has_bits) {
1180  (*has_bits)[1] |= 8u;
1181  }
1183  (*has_bits)[4] |= 64u;
1184  }
1185  static void set_has_exploit_all_lp_solution(HasBits* has_bits) {
1186  (*has_bits)[3] |= 32u;
1187  }
1188  static void set_has_exploit_best_solution(HasBits* has_bits) {
1189  (*has_bits)[1] |= 16u;
1190  }
1192  (*has_bits)[0] |= 33554432u;
1193  }
1194  static void set_has_exploit_objective(HasBits* has_bits) {
1195  (*has_bits)[3] |= 64u;
1196  }
1197  static void set_has_probing_period_at_root(HasBits* has_bits) {
1198  (*has_bits)[1] |= 8192u;
1199  }
1201  (*has_bits)[3] |= 1048576u;
1202  }
1203  static void set_has_optimize_with_core(HasBits* has_bits) {
1204  (*has_bits)[0] |= 67108864u;
1205  }
1207  (*has_bits)[3] |= 2u;
1208  }
1209  static void set_has_optimize_with_max_hs(HasBits* has_bits) {
1210  (*has_bits)[0] |= 134217728u;
1211  }
1212  static void set_has_enumerate_all_solutions(HasBits* has_bits) {
1213  (*has_bits)[0] |= 268435456u;
1214  }
1216  (*has_bits)[1] |= 512u;
1217  }
1219  (*has_bits)[3] |= 128u;
1220  }
1222  (*has_bits)[3] |= 256u;
1223  }
1225  (*has_bits)[1] |= 1024u;
1226  }
1227  static void set_has_stop_after_presolve(HasBits* has_bits) {
1228  (*has_bits)[1] |= 2048u;
1229  }
1230  static void set_has_num_search_workers(HasBits* has_bits) {
1231  (*has_bits)[3] |= 4u;
1232  }
1233  static void set_has_interleave_search(HasBits* has_bits) {
1234  (*has_bits)[1] |= 4096u;
1235  }
1236  static void set_has_interleave_batch_size(HasBits* has_bits) {
1237  (*has_bits)[4] |= 128u;
1238  }
1240  (*has_bits)[0] |= 536870912u;
1241  }
1242  static void set_has_share_objective_bounds(HasBits* has_bits) {
1243  (*has_bits)[3] |= 2147483648u;
1244  }
1245  static void set_has_share_level_zero_bounds(HasBits* has_bits) {
1246  (*has_bits)[4] |= 1u;
1247  }
1248  static void set_has_use_lns_only(HasBits* has_bits) {
1249  (*has_bits)[0] |= 1073741824u;
1250  }
1252  (*has_bits)[0] |= 2147483648u;
1253  }
1254  static void set_has_use_rins_lns(HasBits* has_bits) {
1255  (*has_bits)[4] |= 2u;
1256  }
1257  static void set_has_use_feasibility_pump(HasBits* has_bits) {
1258  (*has_bits)[4] |= 4u;
1259  }
1260  static void set_has_fp_rounding(HasBits* has_bits) {
1261  (*has_bits)[4] |= 262144u;
1262  }
1263  static void set_has_use_relaxation_lns(HasBits* has_bits) {
1264  (*has_bits)[1] |= 1u;
1265  }
1266  static void set_has_diversify_lns_params(HasBits* has_bits) {
1267  (*has_bits)[1] |= 32u;
1268  }
1269  static void set_has_randomize_search(HasBits* has_bits) {
1270  (*has_bits)[1] |= 64u;
1271  }
1273  (*has_bits)[0] |= 1048576u;
1274  }
1275  static void set_has_use_optional_variables(HasBits* has_bits) {
1276  (*has_bits)[3] |= 4194304u;
1277  }
1278  static void set_has_use_exact_lp_reason(HasBits* has_bits) {
1279  (*has_bits)[3] |= 8388608u;
1280  }
1281  static void set_has_use_branching_in_lp(HasBits* has_bits) {
1282  (*has_bits)[1] |= 128u;
1283  }
1284  static void set_has_use_combined_no_overlap(HasBits* has_bits) {
1285  (*has_bits)[1] |= 256u;
1286  }
1287  static void set_has_catch_sigint_signal(HasBits* has_bits) {
1288  (*has_bits)[3] |= 16777216u;
1289  }
1290  static void set_has_use_implied_bounds(HasBits* has_bits) {
1291  (*has_bits)[3] |= 33554432u;
1292  }
1293  static void set_has_mip_max_bound(HasBits* has_bits) {
1294  (*has_bits)[3] |= 67108864u;
1295  }
1296  static void set_has_mip_var_scaling(HasBits* has_bits) {
1297  (*has_bits)[3] |= 134217728u;
1298  }
1300  (*has_bits)[4] |= 524288u;
1301  }
1302  static void set_has_mip_wanted_precision(HasBits* has_bits) {
1303  (*has_bits)[3] |= 268435456u;
1304  }
1306  (*has_bits)[3] |= 1073741824u;
1307  }
1308  static void set_has_mip_check_precision(HasBits* has_bits) {
1309  (*has_bits)[3] |= 536870912u;
1310  }
1311 };
1312 
1313 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_;
1314 SatParameters::SatParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1315  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1316  restart_algorithms_(arena) {
1317  SharedCtor();
1318  RegisterArenaDtor(arena);
1319  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SatParameters)
1320 }
1321 SatParameters::SatParameters(const SatParameters& from)
1322  : ::PROTOBUF_NAMESPACE_ID::Message(),
1323  _has_bits_(from._has_bits_),
1324  restart_algorithms_(from.restart_algorithms_) {
1325  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1326  default_restart_algorithms_.UnsafeSetDefault(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get());
1327  if (from._internal_has_default_restart_algorithms()) {
1328  default_restart_algorithms_.Set(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get(), from._internal_default_restart_algorithms(),
1329  GetArena());
1330  }
1331  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1332  if (from._internal_has_name()) {
1333  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_name(),
1334  GetArena());
1335  }
1336  ::memcpy(&preferred_variable_order_, &from.preferred_variable_order_,
1337  static_cast<size_t>(reinterpret_cast<char*>(&mip_automatically_scale_variables_) -
1338  reinterpret_cast<char*>(&preferred_variable_order_)) + sizeof(mip_automatically_scale_variables_));
1339  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SatParameters)
1340 }
1341 
1342 void SatParameters::SharedCtor() {
1343  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SatParameters_ortools_2fsat_2fsat_5fparameters_2eproto.base);
1344  default_restart_algorithms_.UnsafeSetDefault(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get());
1345  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1346  ::memset(&preferred_variable_order_, 0, static_cast<size_t>(
1347  reinterpret_cast<char*>(&relative_gap_limit_) -
1348  reinterpret_cast<char*>(&preferred_variable_order_)) + sizeof(relative_gap_limit_));
1349  polarity_rephase_increment_ = 1000;
1350  initial_polarity_ = 1;
1351  minimization_algorithm_ = 2;
1352  clause_cleanup_period_ = 10000;
1353  clause_cleanup_target_ = 10000;
1354  variable_activity_decay_ = 0.8;
1355  max_variable_activity_value_ = 1e+100;
1356  clause_activity_decay_ = 0.999;
1357  max_clause_activity_value_ = 1e+20;
1358  glucose_max_decay_ = 0.95;
1359  glucose_decay_increment_ = 0.01;
1360  glucose_decay_increment_period_ = 5000;
1361  restart_period_ = 50;
1362  random_seed_ = 1;
1363  binary_minimization_algorithm_ = 1;
1364  max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1365  max_number_of_conflicts_ = PROTOBUF_LONGLONG(9223372036854775807);
1366  max_memory_in_mb_ = PROTOBUF_LONGLONG(10000);
1367  use_phase_saving_ = true;
1368  subsumption_during_conflict_analysis_ = true;
1369  treat_binary_clauses_separately_ = true;
1370  count_assumption_levels_in_lbd_ = true;
1371  pb_cleanup_increment_ = 200;
1372  pb_cleanup_ratio_ = 0.5;
1373  max_sat_stratification_ = 1;
1374  presolve_bve_threshold_ = 500;
1375  presolve_probing_deterministic_time_limit_ = 30;
1376  presolve_bve_clause_weight_ = 3;
1377  clause_cleanup_lbd_bound_ = 5;
1378  restart_dl_average_ratio_ = 1;
1379  restart_running_window_size_ = 50;
1380  blocking_restart_window_size_ = 5000;
1381  blocking_restart_multiplier_ = 1.4;
1382  max_deterministic_time_ = std::numeric_limits<double>::infinity();
1383  restart_lbd_average_ratio_ = 1;
1384  presolve_bva_threshold_ = 1;
1385  minimize_core_ = true;
1386  find_multiple_cores_ = true;
1387  cover_optimization_ = true;
1388  use_precedences_in_disjunctive_constraint_ = true;
1389  presolve_blocked_clause_ = true;
1390  presolve_use_bva_ = true;
1391  cp_model_presolve_ = true;
1392  cp_model_use_sat_presolve_ = true;
1393  linearization_level_ = 1;
1394  max_num_cuts_ = 10000;
1395  minimize_with_propagation_restart_period_ = 10;
1396  minimize_with_propagation_num_decisions_ = 1000;
1397  binary_search_num_conflicts_ = -1;
1398  num_search_workers_ = 1;
1399  boolean_encoding_level_ = 1;
1400  cp_model_probing_level_ = 2;
1401  exploit_all_lp_solution_ = true;
1402  exploit_objective_ = true;
1403  instantiate_all_variables_ = true;
1404  auto_detect_greater_than_at_least_one_of_ = true;
1405  min_orthogonality_for_lp_constraints_ = 0.05;
1406  max_integer_rounding_scaling_ = 600;
1407  expand_element_constraints_ = true;
1408  expand_automaton_constraints_ = true;
1409  expand_table_constraints_ = true;
1410  use_optimization_hints_ = true;
1411  max_consecutive_inactive_count_ = 100;
1412  use_disjunctive_constraint_in_cumulative_constraint_ = true;
1413  add_cg_cuts_ = true;
1414  add_mir_cuts_ = true;
1415  add_zero_half_cuts_ = true;
1416  pseudo_cost_reliability_threshold_ = PROTOBUF_LONGLONG(100);
1417  new_constraints_batch_size_ = 50;
1418  use_optional_variables_ = true;
1419  use_exact_lp_reason_ = true;
1420  catch_sigint_signal_ = true;
1421  use_implied_bounds_ = true;
1422  mip_max_bound_ = 10000000;
1423  mip_var_scaling_ = 1;
1424  mip_wanted_precision_ = 1e-06;
1425  mip_check_precision_ = 0.001;
1426  mip_max_activity_exponent_ = 53;
1427  share_objective_bounds_ = true;
1428  share_level_zero_bounds_ = true;
1429  use_rins_lns_ = true;
1430  use_feasibility_pump_ = true;
1431  add_clique_cuts_ = true;
1432  add_lin_max_cuts_ = true;
1433  add_lp_constraints_lazily_ = true;
1434  exploit_integer_lp_solution_ = true;
1435  interleave_batch_size_ = 1;
1436  max_presolve_iterations_ = 3;
1437  presolve_substitution_level_ = 1;
1438  merge_no_overlap_work_limit_ = 1000000000000;
1439  merge_at_most_one_work_limit_ = 100000000;
1440  max_all_diff_cut_size_ = 7;
1441  hint_conflict_limit_ = 10;
1442  cut_max_active_count_value_ = 10000000000;
1443  max_cut_rounds_at_level_zero_ = 1;
1444  cut_cleanup_target_ = 1000;
1445  cut_active_count_decay_ = 0.8;
1446  fp_rounding_ = 2;
1447  mip_automatically_scale_variables_ = true;
1448 }
1449 
1450 SatParameters::~SatParameters() {
1451  // @@protoc_insertion_point(destructor:operations_research.sat.SatParameters)
1452  SharedDtor();
1453  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1454 }
1455 
1456 void SatParameters::SharedDtor() {
1457  GOOGLE_DCHECK(GetArena() == nullptr);
1458  default_restart_algorithms_.DestroyNoArena(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get());
1459  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1460 }
1461 
1462 void SatParameters::ArenaDtor(void* object) {
1463  SatParameters* _this = reinterpret_cast< SatParameters* >(object);
1464  (void)_this;
1465 }
1466 void SatParameters::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1467 }
1468 void SatParameters::SetCachedSize(int size) const {
1469  _cached_size_.Set(size);
1470 }
1471 const SatParameters& SatParameters::default_instance() {
1472  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SatParameters_ortools_2fsat_2fsat_5fparameters_2eproto.base);
1473  return *internal_default_instance();
1474 }
1475 
1476 
1477 void SatParameters::Clear() {
1478 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SatParameters)
1479  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1480  // Prevent compiler warnings about cached_has_bits being unused
1481  (void) cached_has_bits;
1482 
1483  restart_algorithms_.Clear();
1484  cached_has_bits = _has_bits_[0];
1485  if (cached_has_bits & 0x00000003u) {
1486  if (cached_has_bits & 0x00000001u) {
1487  default_restart_algorithms_.ClearToDefault(&::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get(), GetArena());
1488  }
1489  if (cached_has_bits & 0x00000002u) {
1490  name_.ClearNonDefaultToEmpty();
1491  }
1492  }
1493  if (cached_has_bits & 0x000000fcu) {
1494  ::memset(&preferred_variable_order_, 0, static_cast<size_t>(
1495  reinterpret_cast<char*>(&clause_cleanup_ordering_) -
1496  reinterpret_cast<char*>(&preferred_variable_order_)) + sizeof(clause_cleanup_ordering_));
1497  }
1498  if (cached_has_bits & 0x0000ff00u) {
1499  ::memset(&use_erwa_heuristic_, 0, static_cast<size_t>(
1500  reinterpret_cast<char*>(&search_branching_) -
1501  reinterpret_cast<char*>(&use_erwa_heuristic_)) + sizeof(search_branching_));
1502  }
1503  if (cached_has_bits & 0x00ff0000u) {
1504  ::memset(&expand_alldiff_constraints_, 0, static_cast<size_t>(
1505  reinterpret_cast<char*>(&cp_model_postsolve_with_full_solver_) -
1506  reinterpret_cast<char*>(&expand_alldiff_constraints_)) + sizeof(cp_model_postsolve_with_full_solver_));
1507  }
1508  if (cached_has_bits & 0xff000000u) {
1509  ::memset(&use_sat_inprocessing_, 0, static_cast<size_t>(
1510  reinterpret_cast<char*>(&lns_focus_on_decision_variables_) -
1511  reinterpret_cast<char*>(&use_sat_inprocessing_)) + sizeof(lns_focus_on_decision_variables_));
1512  }
1513  cached_has_bits = _has_bits_[1];
1514  if (cached_has_bits & 0x000000ffu) {
1515  ::memset(&use_relaxation_lns_, 0, static_cast<size_t>(
1516  reinterpret_cast<char*>(&use_branching_in_lp_) -
1517  reinterpret_cast<char*>(&use_relaxation_lns_)) + sizeof(use_branching_in_lp_));
1518  }
1519  if (cached_has_bits & 0x0000ff00u) {
1520  ::memset(&use_combined_no_overlap_, 0, static_cast<size_t>(
1521  reinterpret_cast<char*>(&absolute_gap_limit_) -
1522  reinterpret_cast<char*>(&use_combined_no_overlap_)) + sizeof(absolute_gap_limit_));
1523  }
1524  if (cached_has_bits & 0x00ff0000u) {
1525  relative_gap_limit_ = 0;
1526  polarity_rephase_increment_ = 1000;
1527  initial_polarity_ = 1;
1528  minimization_algorithm_ = 2;
1529  clause_cleanup_period_ = 10000;
1530  clause_cleanup_target_ = 10000;
1531  variable_activity_decay_ = 0.8;
1532  max_variable_activity_value_ = 1e+100;
1533  }
1534  if (cached_has_bits & 0xff000000u) {
1535  clause_activity_decay_ = 0.999;
1536  max_clause_activity_value_ = 1e+20;
1537  glucose_max_decay_ = 0.95;
1538  glucose_decay_increment_ = 0.01;
1539  glucose_decay_increment_period_ = 5000;
1540  restart_period_ = 50;
1541  random_seed_ = 1;
1542  binary_minimization_algorithm_ = 1;
1543  }
1544  cached_has_bits = _has_bits_[2];
1545  if (cached_has_bits & 0x000000ffu) {
1546  max_time_in_seconds_ = std::numeric_limits<double>::infinity();
1547  max_number_of_conflicts_ = PROTOBUF_LONGLONG(9223372036854775807);
1548  max_memory_in_mb_ = PROTOBUF_LONGLONG(10000);
1549  use_phase_saving_ = true;
1550  subsumption_during_conflict_analysis_ = true;
1551  treat_binary_clauses_separately_ = true;
1552  count_assumption_levels_in_lbd_ = true;
1553  pb_cleanup_increment_ = 200;
1554  }
1555  if (cached_has_bits & 0x0000ff00u) {
1556  pb_cleanup_ratio_ = 0.5;
1557  max_sat_stratification_ = 1;
1558  presolve_bve_threshold_ = 500;
1559  presolve_probing_deterministic_time_limit_ = 30;
1560  presolve_bve_clause_weight_ = 3;
1561  clause_cleanup_lbd_bound_ = 5;
1562  restart_dl_average_ratio_ = 1;
1563  restart_running_window_size_ = 50;
1564  }
1565  if (cached_has_bits & 0x00ff0000u) {
1566  blocking_restart_window_size_ = 5000;
1567  blocking_restart_multiplier_ = 1.4;
1568  max_deterministic_time_ = std::numeric_limits<double>::infinity();
1569  restart_lbd_average_ratio_ = 1;
1570  presolve_bva_threshold_ = 1;
1571  minimize_core_ = true;
1572  find_multiple_cores_ = true;
1573  cover_optimization_ = true;
1574  }
1575  if (cached_has_bits & 0xff000000u) {
1576  use_precedences_in_disjunctive_constraint_ = true;
1577  presolve_blocked_clause_ = true;
1578  presolve_use_bva_ = true;
1579  cp_model_presolve_ = true;
1580  cp_model_use_sat_presolve_ = true;
1581  linearization_level_ = 1;
1582  max_num_cuts_ = 10000;
1583  minimize_with_propagation_restart_period_ = 10;
1584  }
1585  cached_has_bits = _has_bits_[3];
1586  if (cached_has_bits & 0x000000ffu) {
1587  minimize_with_propagation_num_decisions_ = 1000;
1588  binary_search_num_conflicts_ = -1;
1589  num_search_workers_ = 1;
1590  boolean_encoding_level_ = 1;
1591  cp_model_probing_level_ = 2;
1592  exploit_all_lp_solution_ = true;
1593  exploit_objective_ = true;
1594  instantiate_all_variables_ = true;
1595  }
1596  if (cached_has_bits & 0x0000ff00u) {
1597  auto_detect_greater_than_at_least_one_of_ = true;
1598  min_orthogonality_for_lp_constraints_ = 0.05;
1599  max_integer_rounding_scaling_ = 600;
1600  expand_element_constraints_ = true;
1601  expand_automaton_constraints_ = true;
1602  expand_table_constraints_ = true;
1603  use_optimization_hints_ = true;
1604  max_consecutive_inactive_count_ = 100;
1605  }
1606  if (cached_has_bits & 0x00ff0000u) {
1607  use_disjunctive_constraint_in_cumulative_constraint_ = true;
1608  add_cg_cuts_ = true;
1609  add_mir_cuts_ = true;
1610  add_zero_half_cuts_ = true;
1611  pseudo_cost_reliability_threshold_ = PROTOBUF_LONGLONG(100);
1612  new_constraints_batch_size_ = 50;
1613  use_optional_variables_ = true;
1614  use_exact_lp_reason_ = true;
1615  }
1616  if (cached_has_bits & 0xff000000u) {
1617  catch_sigint_signal_ = true;
1618  use_implied_bounds_ = true;
1619  mip_max_bound_ = 10000000;
1620  mip_var_scaling_ = 1;
1621  mip_wanted_precision_ = 1e-06;
1622  mip_check_precision_ = 0.001;
1623  mip_max_activity_exponent_ = 53;
1624  share_objective_bounds_ = true;
1625  }
1626  cached_has_bits = _has_bits_[4];
1627  if (cached_has_bits & 0x000000ffu) {
1628  share_level_zero_bounds_ = true;
1629  use_rins_lns_ = true;
1630  use_feasibility_pump_ = true;
1631  add_clique_cuts_ = true;
1632  add_lin_max_cuts_ = true;
1633  add_lp_constraints_lazily_ = true;
1634  exploit_integer_lp_solution_ = true;
1635  interleave_batch_size_ = 1;
1636  }
1637  if (cached_has_bits & 0x0000ff00u) {
1638  max_presolve_iterations_ = 3;
1639  presolve_substitution_level_ = 1;
1640  merge_no_overlap_work_limit_ = 1000000000000;
1641  merge_at_most_one_work_limit_ = 100000000;
1642  max_all_diff_cut_size_ = 7;
1643  hint_conflict_limit_ = 10;
1644  cut_max_active_count_value_ = 10000000000;
1645  max_cut_rounds_at_level_zero_ = 1;
1646  }
1647  if (cached_has_bits & 0x000f0000u) {
1648  cut_cleanup_target_ = 1000;
1649  cut_active_count_decay_ = 0.8;
1650  fp_rounding_ = 2;
1651  mip_automatically_scale_variables_ = true;
1652  }
1653  _has_bits_.Clear();
1654  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1655 }
1656 
1657 const char* SatParameters::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1658 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1659  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
1660  while (!ctx->Done(&ptr)) {
1662  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1663  CHK_(ptr);
1664  switch (tag >> 3) {
1665  // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
1666  case 1:
1667  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1668  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1669  CHK_(ptr);
1670  if (PROTOBUF_PREDICT_TRUE(::operations_research::sat::SatParameters_VariableOrder_IsValid(val))) {
1671  _internal_set_preferred_variable_order(static_cast<::operations_research::sat::SatParameters_VariableOrder>(val));
1672  } else {
1673  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
1674  }
1675  } else goto handle_unusual;
1676  continue;
1677  // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
1678  case 2:
1679  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1680  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1681  CHK_(ptr);
1682  if (PROTOBUF_PREDICT_TRUE(::operations_research::sat::SatParameters_Polarity_IsValid(val))) {
1683  _internal_set_initial_polarity(static_cast<::operations_research::sat::SatParameters_Polarity>(val));
1684  } else {
1685  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(2, val, mutable_unknown_fields());
1686  }
1687  } else goto handle_unusual;
1688  continue;
1689  // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
1690  case 4:
1691  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
1692  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1693  CHK_(ptr);
1695  _internal_set_minimization_algorithm(static_cast<::operations_research::sat::SatParameters_ConflictMinimizationAlgorithm>(val));
1696  } else {
1697  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(4, val, mutable_unknown_fields());
1698  }
1699  } else goto handle_unusual;
1700  continue;
1701  // optional int32 clause_cleanup_period = 11 [default = 10000];
1702  case 11:
1703  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
1705  clause_cleanup_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1706  CHK_(ptr);
1707  } else goto handle_unusual;
1708  continue;
1709  // optional int32 clause_cleanup_target = 13 [default = 10000];
1710  case 13:
1711  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
1713  clause_cleanup_target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1714  CHK_(ptr);
1715  } else goto handle_unusual;
1716  continue;
1717  // optional double variable_activity_decay = 15 [default = 0.8];
1718  case 15:
1719  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 121)) {
1721  variable_activity_decay_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1722  ptr += sizeof(double);
1723  } else goto handle_unusual;
1724  continue;
1725  // optional double max_variable_activity_value = 16 [default = 1e+100];
1726  case 16:
1727  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 129)) {
1729  max_variable_activity_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1730  ptr += sizeof(double);
1731  } else goto handle_unusual;
1732  continue;
1733  // optional double clause_activity_decay = 17 [default = 0.999];
1734  case 17:
1735  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 137)) {
1737  clause_activity_decay_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1738  ptr += sizeof(double);
1739  } else goto handle_unusual;
1740  continue;
1741  // optional double max_clause_activity_value = 18 [default = 1e+20];
1742  case 18:
1743  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 145)) {
1745  max_clause_activity_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1746  ptr += sizeof(double);
1747  } else goto handle_unusual;
1748  continue;
1749  // optional double glucose_max_decay = 22 [default = 0.95];
1750  case 22:
1751  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
1753  glucose_max_decay_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1754  ptr += sizeof(double);
1755  } else goto handle_unusual;
1756  continue;
1757  // optional double glucose_decay_increment = 23 [default = 0.01];
1758  case 23:
1759  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 185)) {
1761  glucose_decay_increment_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1762  ptr += sizeof(double);
1763  } else goto handle_unusual;
1764  continue;
1765  // optional int32 glucose_decay_increment_period = 24 [default = 5000];
1766  case 24:
1767  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
1769  glucose_decay_increment_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1770  CHK_(ptr);
1771  } else goto handle_unusual;
1772  continue;
1773  // optional int32 restart_period = 30 [default = 50];
1774  case 30:
1775  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
1776  _Internal::set_has_restart_period(&_has_bits_);
1777  restart_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1778  CHK_(ptr);
1779  } else goto handle_unusual;
1780  continue;
1781  // optional int32 random_seed = 31 [default = 1];
1782  case 31:
1783  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
1784  _Internal::set_has_random_seed(&_has_bits_);
1785  random_seed_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1786  CHK_(ptr);
1787  } else goto handle_unusual;
1788  continue;
1789  // optional double random_branches_ratio = 32 [default = 0];
1790  case 32:
1791  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 1)) {
1793  random_branches_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1794  ptr += sizeof(double);
1795  } else goto handle_unusual;
1796  continue;
1797  // optional bool treat_binary_clauses_separately = 33 [default = true];
1798  case 33:
1799  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1801  treat_binary_clauses_separately_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1802  CHK_(ptr);
1803  } else goto handle_unusual;
1804  continue;
1805  // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FIRST];
1806  case 34:
1807  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
1808  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1809  CHK_(ptr);
1811  _internal_set_binary_minimization_algorithm(static_cast<::operations_research::sat::SatParameters_BinaryMinizationAlgorithm>(val));
1812  } else {
1813  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(34, val, mutable_unknown_fields());
1814  }
1815  } else goto handle_unusual;
1816  continue;
1817  // optional bool use_optimization_hints = 35 [default = true];
1818  case 35:
1819  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1821  use_optimization_hints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1822  CHK_(ptr);
1823  } else goto handle_unusual;
1824  continue;
1825  // optional double max_time_in_seconds = 36 [default = inf];
1826  case 36:
1827  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
1829  max_time_in_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1830  ptr += sizeof(double);
1831  } else goto handle_unusual;
1832  continue;
1833  // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
1834  case 37:
1835  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
1837  max_number_of_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1838  CHK_(ptr);
1839  } else goto handle_unusual;
1840  continue;
1841  // optional int64 max_memory_in_mb = 40 [default = 10000];
1842  case 40:
1843  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
1845  max_memory_in_mb_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1846  CHK_(ptr);
1847  } else goto handle_unusual;
1848  continue;
1849  // optional bool log_search_progress = 41 [default = false];
1850  case 41:
1851  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
1853  log_search_progress_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1854  CHK_(ptr);
1855  } else goto handle_unusual;
1856  continue;
1857  // optional bool use_pb_resolution = 43 [default = false];
1858  case 43:
1859  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
1861  use_pb_resolution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1862  CHK_(ptr);
1863  } else goto handle_unusual;
1864  continue;
1865  // optional bool use_phase_saving = 44 [default = true];
1866  case 44:
1867  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
1869  use_phase_saving_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1870  CHK_(ptr);
1871  } else goto handle_unusual;
1872  continue;
1873  // optional double random_polarity_ratio = 45 [default = 0];
1874  case 45:
1875  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 105)) {
1877  random_polarity_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1878  ptr += sizeof(double);
1879  } else goto handle_unusual;
1880  continue;
1881  // optional int32 pb_cleanup_increment = 46 [default = 200];
1882  case 46:
1883  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
1885  pb_cleanup_increment_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1886  CHK_(ptr);
1887  } else goto handle_unusual;
1888  continue;
1889  // optional double pb_cleanup_ratio = 47 [default = 0.5];
1890  case 47:
1891  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 121)) {
1893  pb_cleanup_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1894  ptr += sizeof(double);
1895  } else goto handle_unusual;
1896  continue;
1897  // optional bool minimize_reduction_during_pb_resolution = 48 [default = false];
1898  case 48:
1899  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
1901  minimize_reduction_during_pb_resolution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1902  CHK_(ptr);
1903  } else goto handle_unusual;
1904  continue;
1905  // optional bool count_assumption_levels_in_lbd = 49 [default = true];
1906  case 49:
1907  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
1909  count_assumption_levels_in_lbd_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1910  CHK_(ptr);
1911  } else goto handle_unusual;
1912  continue;
1913  // optional bool minimize_core = 50 [default = true];
1914  case 50:
1915  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
1916  _Internal::set_has_minimize_core(&_has_bits_);
1917  minimize_core_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1918  CHK_(ptr);
1919  } else goto handle_unusual;
1920  continue;
1921  // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
1922  case 51:
1923  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
1924  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1925  CHK_(ptr);
1927  _internal_set_max_sat_assumption_order(static_cast<::operations_research::sat::SatParameters_MaxSatAssumptionOrder>(val));
1928  } else {
1929  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(51, val, mutable_unknown_fields());
1930  }
1931  } else goto handle_unusual;
1932  continue;
1933  // optional bool max_sat_reverse_assumption_order = 52 [default = false];
1934  case 52:
1935  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
1937  max_sat_reverse_assumption_order_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1938  CHK_(ptr);
1939  } else goto handle_unusual;
1940  continue;
1941  // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
1942  case 53:
1943  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
1944  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1945  CHK_(ptr);
1947  _internal_set_max_sat_stratification(static_cast<::operations_research::sat::SatParameters_MaxSatStratificationAlgorithm>(val));
1948  } else {
1949  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(53, val, mutable_unknown_fields());
1950  }
1951  } else goto handle_unusual;
1952  continue;
1953  // optional int32 presolve_bve_threshold = 54 [default = 500];
1954  case 54:
1955  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
1957  presolve_bve_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1958  CHK_(ptr);
1959  } else goto handle_unusual;
1960  continue;
1961  // optional int32 presolve_bve_clause_weight = 55 [default = 3];
1962  case 55:
1963  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
1965  presolve_bve_clause_weight_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1966  CHK_(ptr);
1967  } else goto handle_unusual;
1968  continue;
1969  // optional bool subsumption_during_conflict_analysis = 56 [default = true];
1970  case 56:
1971  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
1973  subsumption_during_conflict_analysis_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1974  CHK_(ptr);
1975  } else goto handle_unusual;
1976  continue;
1977  // optional double presolve_probing_deterministic_time_limit = 57 [default = 30];
1978  case 57:
1979  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 201)) {
1981  presolve_probing_deterministic_time_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1982  ptr += sizeof(double);
1983  } else goto handle_unusual;
1984  continue;
1985  // optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [default = PROTECTION_NONE];
1986  case 58:
1987  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) {
1988  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1989  CHK_(ptr);
1990  if (PROTOBUF_PREDICT_TRUE(::operations_research::sat::SatParameters_ClauseProtection_IsValid(val))) {
1991  _internal_set_clause_cleanup_protection(static_cast<::operations_research::sat::SatParameters_ClauseProtection>(val));
1992  } else {
1993  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(58, val, mutable_unknown_fields());
1994  }
1995  } else goto handle_unusual;
1996  continue;
1997  // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
1998  case 59:
1999  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
2001  clause_cleanup_lbd_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2002  CHK_(ptr);
2003  } else goto handle_unusual;
2004  continue;
2005  // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
2006  case 60:
2007  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 224)) {
2008  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2009  CHK_(ptr);
2010  if (PROTOBUF_PREDICT_TRUE(::operations_research::sat::SatParameters_ClauseOrdering_IsValid(val))) {
2011  _internal_set_clause_cleanup_ordering(static_cast<::operations_research::sat::SatParameters_ClauseOrdering>(val));
2012  } else {
2013  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(60, val, mutable_unknown_fields());
2014  }
2015  } else goto handle_unusual;
2016  continue;
2017  // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
2018  case 61:
2019  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
2020  ptr -= 2;
2021  do {
2022  ptr += 2;
2023  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2024  CHK_(ptr);
2025  if (PROTOBUF_PREDICT_TRUE(::operations_research::sat::SatParameters_RestartAlgorithm_IsValid(val))) {
2026  _internal_add_restart_algorithms(static_cast<::operations_research::sat::SatParameters_RestartAlgorithm>(val));
2027  } else {
2028  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(61, val, mutable_unknown_fields());
2029  }
2030  if (!ctx->DataAvailable(ptr)) break;
2031  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<488>(ptr));
2032  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234) {
2033  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(_internal_mutable_restart_algorithms(), ptr, ctx, ::operations_research::sat::SatParameters_RestartAlgorithm_IsValid, &_internal_metadata_, 61);
2034  CHK_(ptr);
2035  } else goto handle_unusual;
2036  continue;
2037  // optional int32 restart_running_window_size = 62 [default = 50];
2038  case 62:
2039  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
2041  restart_running_window_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2042  CHK_(ptr);
2043  } else goto handle_unusual;
2044  continue;
2045  // optional double restart_dl_average_ratio = 63 [default = 1];
2046  case 63:
2047  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 249)) {
2049  restart_dl_average_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2050  ptr += sizeof(double);
2051  } else goto handle_unusual;
2052  continue;
2053  // optional bool use_blocking_restart = 64 [default = false];
2054  case 64:
2055  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
2057  use_blocking_restart_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2058  CHK_(ptr);
2059  } else goto handle_unusual;
2060  continue;
2061  // optional int32 blocking_restart_window_size = 65 [default = 5000];
2062  case 65:
2063  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2065  blocking_restart_window_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2066  CHK_(ptr);
2067  } else goto handle_unusual;
2068  continue;
2069  // optional double blocking_restart_multiplier = 66 [default = 1.4];
2070  case 66:
2071  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
2073  blocking_restart_multiplier_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2074  ptr += sizeof(double);
2075  } else goto handle_unusual;
2076  continue;
2077  // optional double max_deterministic_time = 67 [default = inf];
2078  case 67:
2079  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
2081  max_deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2082  ptr += sizeof(double);
2083  } else goto handle_unusual;
2084  continue;
2085  // optional int32 num_conflicts_before_strategy_changes = 68 [default = 0];
2086  case 68:
2087  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
2089  num_conflicts_before_strategy_changes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2090  CHK_(ptr);
2091  } else goto handle_unusual;
2092  continue;
2093  // optional double strategy_change_increase_ratio = 69 [default = 0];
2094  case 69:
2095  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 41)) {
2097  strategy_change_increase_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2098  ptr += sizeof(double);
2099  } else goto handle_unusual;
2100  continue;
2101  // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
2102  case 70:
2103  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
2104  auto str = _internal_mutable_default_restart_algorithms();
2105  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
2106  #ifndef NDEBUG
2107  ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.SatParameters.default_restart_algorithms");
2108  #endif // !NDEBUG
2109  CHK_(ptr);
2110  } else goto handle_unusual;
2111  continue;
2112  // optional double restart_lbd_average_ratio = 71 [default = 1];
2113  case 71:
2114  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 57)) {
2116  restart_lbd_average_ratio_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2117  ptr += sizeof(double);
2118  } else goto handle_unusual;
2119  continue;
2120  // optional bool presolve_use_bva = 72 [default = true];
2121  case 72:
2122  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
2124  presolve_use_bva_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2125  CHK_(ptr);
2126  } else goto handle_unusual;
2127  continue;
2128  // optional int32 presolve_bva_threshold = 73 [default = 1];
2129  case 73:
2130  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
2132  presolve_bva_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2133  CHK_(ptr);
2134  } else goto handle_unusual;
2135  continue;
2136  // optional bool use_precedences_in_disjunctive_constraint = 74 [default = true];
2137  case 74:
2138  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
2140  use_precedences_in_disjunctive_constraint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2141  CHK_(ptr);
2142  } else goto handle_unusual;
2143  continue;
2144  // optional bool use_erwa_heuristic = 75 [default = false];
2145  case 75:
2146  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
2148  use_erwa_heuristic_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2149  CHK_(ptr);
2150  } else goto handle_unusual;
2151  continue;
2152  // optional double initial_variables_activity = 76 [default = 0];
2153  case 76:
2154  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 97)) {
2156  initial_variables_activity_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2157  ptr += sizeof(double);
2158  } else goto handle_unusual;
2159  continue;
2160  // optional bool also_bump_variables_in_conflict_reasons = 77 [default = false];
2161  case 77:
2162  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
2164  also_bump_variables_in_conflict_reasons_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2165  CHK_(ptr);
2166  } else goto handle_unusual;
2167  continue;
2168  // optional bool use_overload_checker_in_cumulative_constraint = 78 [default = false];
2169  case 78:
2170  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
2172  use_overload_checker_in_cumulative_constraint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2173  CHK_(ptr);
2174  } else goto handle_unusual;
2175  continue;
2176  // optional bool use_timetable_edge_finding_in_cumulative_constraint = 79 [default = false];
2177  case 79:
2178  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
2180  use_timetable_edge_finding_in_cumulative_constraint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2181  CHK_(ptr);
2182  } else goto handle_unusual;
2183  continue;
2184  // optional bool use_disjunctive_constraint_in_cumulative_constraint = 80 [default = true];
2185  case 80:
2186  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
2188  use_disjunctive_constraint_in_cumulative_constraint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2189  CHK_(ptr);
2190  } else goto handle_unusual;
2191  continue;
2192  // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
2193  case 82:
2194  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
2195  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2196  CHK_(ptr);
2197  if (PROTOBUF_PREDICT_TRUE(::operations_research::sat::SatParameters_SearchBranching_IsValid(val))) {
2198  _internal_set_search_branching(static_cast<::operations_research::sat::SatParameters_SearchBranching>(val));
2199  } else {
2200  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(82, val, mutable_unknown_fields());
2201  }
2202  } else goto handle_unusual;
2203  continue;
2204  // optional bool optimize_with_core = 83 [default = false];
2205  case 83:
2206  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
2208  optimize_with_core_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2209  CHK_(ptr);
2210  } else goto handle_unusual;
2211  continue;
2212  // optional bool find_multiple_cores = 84 [default = true];
2213  case 84:
2214  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
2216  find_multiple_cores_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2217  CHK_(ptr);
2218  } else goto handle_unusual;
2219  continue;
2220  // optional bool optimize_with_max_hs = 85 [default = false];
2221  case 85:
2222  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
2224  optimize_with_max_hs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2225  CHK_(ptr);
2226  } else goto handle_unusual;
2227  continue;
2228  // optional bool cp_model_presolve = 86 [default = true];
2229  case 86:
2230  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
2232  cp_model_presolve_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2233  CHK_(ptr);
2234  } else goto handle_unusual;
2235  continue;
2236  // optional bool enumerate_all_solutions = 87 [default = false];
2237  case 87:
2238  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
2240  enumerate_all_solutions_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2241  CHK_(ptr);
2242  } else goto handle_unusual;
2243  continue;
2244  // optional bool presolve_blocked_clause = 88 [default = true];
2245  case 88:
2246  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
2248  presolve_blocked_clause_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2249  CHK_(ptr);
2250  } else goto handle_unusual;
2251  continue;
2252  // optional bool cover_optimization = 89 [default = true];
2253  case 89:
2254  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
2256  cover_optimization_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2257  CHK_(ptr);
2258  } else goto handle_unusual;
2259  continue;
2260  // optional int32 linearization_level = 90 [default = 1];
2261  case 90:
2262  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) {
2264  linearization_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2265  CHK_(ptr);
2266  } else goto handle_unusual;
2267  continue;
2268  // optional int32 max_num_cuts = 91 [default = 10000];
2269  case 91:
2270  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
2271  _Internal::set_has_max_num_cuts(&_has_bits_);
2272  max_num_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2273  CHK_(ptr);
2274  } else goto handle_unusual;
2275  continue;
2276  // optional bool only_add_cuts_at_level_zero = 92 [default = false];
2277  case 92:
2278  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 224)) {
2280  only_add_cuts_at_level_zero_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2281  CHK_(ptr);
2282  } else goto handle_unusual;
2283  continue;
2284  // optional bool cp_model_use_sat_presolve = 93 [default = true];
2285  case 93:
2286  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
2288  cp_model_use_sat_presolve_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2289  CHK_(ptr);
2290  } else goto handle_unusual;
2291  continue;
2292  // optional bool exploit_integer_lp_solution = 94 [default = true];
2293  case 94:
2294  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
2296  exploit_integer_lp_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2297  CHK_(ptr);
2298  } else goto handle_unusual;
2299  continue;
2300  // optional bool auto_detect_greater_than_at_least_one_of = 95 [default = true];
2301  case 95:
2302  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
2304  auto_detect_greater_than_at_least_one_of_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2305  CHK_(ptr);
2306  } else goto handle_unusual;
2307  continue;
2308  // optional int32 minimize_with_propagation_restart_period = 96 [default = 10];
2309  case 96:
2310  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
2312  minimize_with_propagation_restart_period_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2313  CHK_(ptr);
2314  } else goto handle_unusual;
2315  continue;
2316  // optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
2317  case 97:
2318  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2320  minimize_with_propagation_num_decisions_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2321  CHK_(ptr);
2322  } else goto handle_unusual;
2323  continue;
2324  // optional bool stop_after_first_solution = 98 [default = false];
2325  case 98:
2326  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2328  stop_after_first_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2329  CHK_(ptr);
2330  } else goto handle_unusual;
2331  continue;
2332  // optional int32 binary_search_num_conflicts = 99 [default = -1];
2333  case 99:
2334  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
2336  binary_search_num_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2337  CHK_(ptr);
2338  } else goto handle_unusual;
2339  continue;
2340  // optional int32 num_search_workers = 100 [default = 1];
2341  case 100:
2342  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
2344  num_search_workers_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2345  CHK_(ptr);
2346  } else goto handle_unusual;
2347  continue;
2348  // optional bool use_lns_only = 101 [default = false];
2349  case 101:
2350  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
2351  _Internal::set_has_use_lns_only(&_has_bits_);
2352  use_lns_only_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2353  CHK_(ptr);
2354  } else goto handle_unusual;
2355  continue;
2356  // optional bool randomize_search = 103 [default = false];
2357  case 103:
2358  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
2360  randomize_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2361  CHK_(ptr);
2362  } else goto handle_unusual;
2363  continue;
2364  // optional int64 search_randomization_tolerance = 104 [default = 0];
2365  case 104:
2366  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
2368  search_randomization_tolerance_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2369  CHK_(ptr);
2370  } else goto handle_unusual;
2371  continue;
2372  // optional bool lns_focus_on_decision_variables = 105 [default = false];
2373  case 105:
2374  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
2376  lns_focus_on_decision_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2377  CHK_(ptr);
2378  } else goto handle_unusual;
2379  continue;
2380  // optional bool instantiate_all_variables = 106 [default = true];
2381  case 106:
2382  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
2384  instantiate_all_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2385  CHK_(ptr);
2386  } else goto handle_unusual;
2387  continue;
2388  // optional int32 boolean_encoding_level = 107 [default = 1];
2389  case 107:
2390  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
2392  boolean_encoding_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2393  CHK_(ptr);
2394  } else goto handle_unusual;
2395  continue;
2396  // optional bool use_optional_variables = 108 [default = true];
2397  case 108:
2398  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
2400  use_optional_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2401  CHK_(ptr);
2402  } else goto handle_unusual;
2403  continue;
2404  // optional bool use_exact_lp_reason = 109 [default = true];
2405  case 109:
2406  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
2408  use_exact_lp_reason_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2409  CHK_(ptr);
2410  } else goto handle_unusual;
2411  continue;
2412  // optional int32 cp_model_probing_level = 110 [default = 2];
2413  case 110:
2414  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
2416  cp_model_probing_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2417  CHK_(ptr);
2418  } else goto handle_unusual;
2419  continue;
2420  // optional bool add_knapsack_cuts = 111 [default = false];
2421  case 111:
2422  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
2424  add_knapsack_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2425  CHK_(ptr);
2426  } else goto handle_unusual;
2427  continue;
2428  // optional bool add_lp_constraints_lazily = 112 [default = true];
2429  case 112:
2430  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
2432  add_lp_constraints_lazily_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2433  CHK_(ptr);
2434  } else goto handle_unusual;
2435  continue;
2436  // optional bool share_objective_bounds = 113 [default = true];
2437  case 113:
2438  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
2440  share_objective_bounds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2441  CHK_(ptr);
2442  } else goto handle_unusual;
2443  continue;
2444  // optional bool share_level_zero_bounds = 114 [default = true];
2445  case 114:
2446  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
2448  share_level_zero_bounds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2449  CHK_(ptr);
2450  } else goto handle_unusual;
2451  continue;
2452  // optional double min_orthogonality_for_lp_constraints = 115 [default = 0.05];
2453  case 115:
2454  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 153)) {
2456  min_orthogonality_for_lp_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2457  ptr += sizeof(double);
2458  } else goto handle_unusual;
2459  continue;
2460  // optional bool exploit_all_lp_solution = 116 [default = true];
2461  case 116:
2462  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
2464  exploit_all_lp_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2465  CHK_(ptr);
2466  } else goto handle_unusual;
2467  continue;
2468  // optional bool add_cg_cuts = 117 [default = true];
2469  case 117:
2470  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
2471  _Internal::set_has_add_cg_cuts(&_has_bits_);
2472  add_cg_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2473  CHK_(ptr);
2474  } else goto handle_unusual;
2475  continue;
2476  // optional int32 max_integer_rounding_scaling = 119 [default = 600];
2477  case 119:
2478  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
2480  max_integer_rounding_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2481  CHK_(ptr);
2482  } else goto handle_unusual;
2483  continue;
2484  // optional bool add_mir_cuts = 120 [default = true];
2485  case 120:
2486  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
2487  _Internal::set_has_add_mir_cuts(&_has_bits_);
2488  add_mir_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2489  CHK_(ptr);
2490  } else goto handle_unusual;
2491  continue;
2492  // optional int32 max_consecutive_inactive_count = 121 [default = 100];
2493  case 121:
2494  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
2496  max_consecutive_inactive_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2497  CHK_(ptr);
2498  } else goto handle_unusual;
2499  continue;
2500  // optional int32 new_constraints_batch_size = 122 [default = 50];
2501  case 122:
2502  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) {
2504  new_constraints_batch_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2505  CHK_(ptr);
2506  } else goto handle_unusual;
2507  continue;
2508  // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
2509  case 123:
2510  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
2512  pseudo_cost_reliability_threshold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2513  CHK_(ptr);
2514  } else goto handle_unusual;
2515  continue;
2516  // optional double mip_max_bound = 124 [default = 10000000];
2517  case 124:
2518  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 225)) {
2519  _Internal::set_has_mip_max_bound(&_has_bits_);
2520  mip_max_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2521  ptr += sizeof(double);
2522  } else goto handle_unusual;
2523  continue;
2524  // optional double mip_var_scaling = 125 [default = 1];
2525  case 125:
2526  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 233)) {
2528  mip_var_scaling_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2529  ptr += sizeof(double);
2530  } else goto handle_unusual;
2531  continue;
2532  // optional double mip_wanted_precision = 126 [default = 1e-06];
2533  case 126:
2534  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 241)) {
2536  mip_wanted_precision_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2537  ptr += sizeof(double);
2538  } else goto handle_unusual;
2539  continue;
2540  // optional int32 mip_max_activity_exponent = 127 [default = 53];
2541  case 127:
2542  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
2544  mip_max_activity_exponent_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2545  CHK_(ptr);
2546  } else goto handle_unusual;
2547  continue;
2548  // optional double mip_check_precision = 128 [default = 0.001];
2549  case 128:
2550  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 1)) {
2552  mip_check_precision_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2553  ptr += sizeof(double);
2554  } else goto handle_unusual;
2555  continue;
2556  // optional bool use_rins_lns = 129 [default = true];
2557  case 129:
2558  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2559  _Internal::set_has_use_rins_lns(&_has_bits_);
2560  use_rins_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2561  CHK_(ptr);
2562  } else goto handle_unusual;
2563  continue;
2564  // optional bool exploit_best_solution = 130 [default = false];
2565  case 130:
2566  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2568  exploit_best_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2569  CHK_(ptr);
2570  } else goto handle_unusual;
2571  continue;
2572  // optional bool exploit_objective = 131 [default = true];
2573  case 131:
2574  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
2576  exploit_objective_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2577  CHK_(ptr);
2578  } else goto handle_unusual;
2579  continue;
2580  // optional bool fill_tightened_domains_in_response = 132 [default = false];
2581  case 132:
2582  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
2584  fill_tightened_domains_in_response_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2585  CHK_(ptr);
2586  } else goto handle_unusual;
2587  continue;
2588  // optional bool use_combined_no_overlap = 133 [default = false];
2589  case 133:
2590  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
2592  use_combined_no_overlap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2593  CHK_(ptr);
2594  } else goto handle_unusual;
2595  continue;
2596  // optional int32 interleave_batch_size = 134 [default = 1];
2597  case 134:
2598  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
2600  interleave_batch_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2601  CHK_(ptr);
2602  } else goto handle_unusual;
2603  continue;
2604  // optional bool catch_sigint_signal = 135 [default = true];
2605  case 135:
2606  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
2608  catch_sigint_signal_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2609  CHK_(ptr);
2610  } else goto handle_unusual;
2611  continue;
2612  // optional bool interleave_search = 136 [default = false];
2613  case 136:
2614  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
2616  interleave_search_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2617  CHK_(ptr);
2618  } else goto handle_unusual;
2619  continue;
2620  // optional bool diversify_lns_params = 137 [default = false];
2621  case 137:
2622  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
2624  diversify_lns_params_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2625  CHK_(ptr);
2626  } else goto handle_unusual;
2627  continue;
2628  // optional int32 max_presolve_iterations = 138 [default = 3];
2629  case 138:
2630  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
2632  max_presolve_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2633  CHK_(ptr);
2634  } else goto handle_unusual;
2635  continue;
2636  // optional bool use_branching_in_lp = 139 [default = false];
2637  case 139:
2638  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
2640  use_branching_in_lp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2641  CHK_(ptr);
2642  } else goto handle_unusual;
2643  continue;
2644  // optional bool expand_element_constraints = 140 [default = true];
2645  case 140:
2646  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
2648  expand_element_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2649  CHK_(ptr);
2650  } else goto handle_unusual;
2651  continue;
2652  // optional bool reduce_memory_usage_in_interleave_mode = 141 [default = false];
2653  case 141:
2654  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
2656  reduce_memory_usage_in_interleave_mode_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2657  CHK_(ptr);
2658  } else goto handle_unusual;
2659  continue;
2660  // optional int64 probing_period_at_root = 142 [default = 0];
2661  case 142:
2662  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
2664  probing_period_at_root_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2665  CHK_(ptr);
2666  } else goto handle_unusual;
2667  continue;
2668  // optional bool expand_automaton_constraints = 143 [default = true];
2669  case 143:
2670  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
2672  expand_automaton_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2673  CHK_(ptr);
2674  } else goto handle_unusual;
2675  continue;
2676  // optional bool use_implied_bounds = 144 [default = true];
2677  case 144:
2678  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
2680  use_implied_bounds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2681  CHK_(ptr);
2682  } else goto handle_unusual;
2683  continue;
2684  // optional double merge_no_overlap_work_limit = 145 [default = 1000000000000];
2685  case 145:
2686  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 137)) {
2688  merge_no_overlap_work_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2689  ptr += sizeof(double);
2690  } else goto handle_unusual;
2691  continue;
2692  // optional double merge_at_most_one_work_limit = 146 [default = 100000000];
2693  case 146:
2694  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 145)) {
2696  merge_at_most_one_work_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2697  ptr += sizeof(double);
2698  } else goto handle_unusual;
2699  continue;
2700  // optional int32 presolve_substitution_level = 147 [default = 1];
2701  case 147:
2702  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
2704  presolve_substitution_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2705  CHK_(ptr);
2706  } else goto handle_unusual;
2707  continue;
2708  // optional int32 max_all_diff_cut_size = 148 [default = 7];
2709  case 148:
2710  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
2712  max_all_diff_cut_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2713  CHK_(ptr);
2714  } else goto handle_unusual;
2715  continue;
2716  // optional bool stop_after_presolve = 149 [default = false];
2717  case 149:
2718  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
2720  stop_after_presolve_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2721  CHK_(ptr);
2722  } else goto handle_unusual;
2723  continue;
2724  // optional bool use_relaxation_lns = 150 [default = false];
2725  case 150:
2726  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
2728  use_relaxation_lns_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2729  CHK_(ptr);
2730  } else goto handle_unusual;
2731  continue;
2732  // optional int32 cp_model_max_num_presolve_operations = 151 [default = 0];
2733  case 151:
2734  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
2736  cp_model_max_num_presolve_operations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2737  CHK_(ptr);
2738  } else goto handle_unusual;
2739  continue;
2740  // optional bool add_lin_max_cuts = 152 [default = true];
2741  case 152:
2742  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
2744  add_lin_max_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2745  CHK_(ptr);
2746  } else goto handle_unusual;
2747  continue;
2748  // optional int32 hint_conflict_limit = 153 [default = 10];
2749  case 153:
2750  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
2752  hint_conflict_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2753  CHK_(ptr);
2754  } else goto handle_unusual;
2755  continue;
2756  // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
2757  case 154:
2758  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) {
2760  max_cut_rounds_at_level_zero_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2761  CHK_(ptr);
2762  } else goto handle_unusual;
2763  continue;
2764  // optional double cut_max_active_count_value = 155 [default = 10000000000];
2765  case 155:
2766  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 217)) {
2768  cut_max_active_count_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2769  ptr += sizeof(double);
2770  } else goto handle_unusual;
2771  continue;
2772  // optional double cut_active_count_decay = 156 [default = 0.8];
2773  case 156:
2774  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 225)) {
2776  cut_active_count_decay_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2777  ptr += sizeof(double);
2778  } else goto handle_unusual;
2779  continue;
2780  // optional int32 cut_cleanup_target = 157 [default = 1000];
2781  case 157:
2782  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
2784  cut_cleanup_target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2785  CHK_(ptr);
2786  } else goto handle_unusual;
2787  continue;
2788  // optional bool expand_table_constraints = 158 [default = true];
2789  case 158:
2790  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
2792  expand_table_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2793  CHK_(ptr);
2794  } else goto handle_unusual;
2795  continue;
2796  // optional double absolute_gap_limit = 159 [default = 0];
2797  case 159:
2798  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 249)) {
2800  absolute_gap_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2801  ptr += sizeof(double);
2802  } else goto handle_unusual;
2803  continue;
2804  // optional double relative_gap_limit = 160 [default = 0];
2805  case 160:
2806  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 1)) {
2808  relative_gap_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
2809  ptr += sizeof(double);
2810  } else goto handle_unusual;
2811  continue;
2812  // optional bool exploit_relaxation_solution = 161 [default = false];
2813  case 161:
2814  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2816  exploit_relaxation_solution_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2817  CHK_(ptr);
2818  } else goto handle_unusual;
2819  continue;
2820  // optional bool cp_model_postsolve_with_full_solver = 162 [default = false];
2821  case 162:
2822  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2824  cp_model_postsolve_with_full_solver_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2825  CHK_(ptr);
2826  } else goto handle_unusual;
2827  continue;
2828  // optional bool use_sat_inprocessing = 163 [default = false];
2829  case 163:
2830  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
2832  use_sat_inprocessing_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2833  CHK_(ptr);
2834  } else goto handle_unusual;
2835  continue;
2836  // optional bool use_feasibility_pump = 164 [default = true];
2837  case 164:
2838  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
2840  use_feasibility_pump_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2841  CHK_(ptr);
2842  } else goto handle_unusual;
2843  continue;
2844  // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
2845  case 165:
2846  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
2847  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2848  CHK_(ptr);
2849  if (PROTOBUF_PREDICT_TRUE(::operations_research::sat::SatParameters_FPRoundingMethod_IsValid(val))) {
2850  _internal_set_fp_rounding(static_cast<::operations_research::sat::SatParameters_FPRoundingMethod>(val));
2851  } else {
2852  ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(165, val, mutable_unknown_fields());
2853  }
2854  } else goto handle_unusual;
2855  continue;
2856  // optional bool mip_automatically_scale_variables = 166 [default = true];
2857  case 166:
2858  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
2860  mip_automatically_scale_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2861  CHK_(ptr);
2862  } else goto handle_unusual;
2863  continue;
2864  // optional bool repair_hint = 167 [default = false];
2865  case 167:
2866  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
2867  _Internal::set_has_repair_hint(&_has_bits_);
2868  repair_hint_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2869  CHK_(ptr);
2870  } else goto handle_unusual;
2871  continue;
2872  // optional int32 polarity_rephase_increment = 168 [default = 1000];
2873  case 168:
2874  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
2876  polarity_rephase_increment_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2877  CHK_(ptr);
2878  } else goto handle_unusual;
2879  continue;
2880  // optional bool add_zero_half_cuts = 169 [default = true];
2881  case 169:
2882  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
2884  add_zero_half_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2885  CHK_(ptr);
2886  } else goto handle_unusual;
2887  continue;
2888  // optional bool expand_alldiff_constraints = 170 [default = false];
2889  case 170:
2890  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
2892  expand_alldiff_constraints_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2893  CHK_(ptr);
2894  } else goto handle_unusual;
2895  continue;
2896  // optional string name = 171 [default = ""];
2897  case 171:
2898  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
2899  auto str = _internal_mutable_name();
2900  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
2901  #ifndef NDEBUG
2902  ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.SatParameters.name");
2903  #endif // !NDEBUG
2904  CHK_(ptr);
2905  } else goto handle_unusual;
2906  continue;
2907  // optional bool add_clique_cuts = 172 [default = true];
2908  case 172:
2909  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
2911  add_clique_cuts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2912  CHK_(ptr);
2913  } else goto handle_unusual;
2914  continue;
2915  default: {
2916  handle_unusual:
2917  if ((tag & 7) == 4 || tag == 0) {
2918  ctx->SetLastTag(tag);
2919  goto success;
2920  }
2921  ptr = UnknownFieldParse(tag,
2922  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2923  ptr, ctx);
2924  CHK_(ptr != nullptr);
2925  continue;
2926  }
2927  } // switch
2928  } // while
2929 success:
2930  return ptr;
2931 failure:
2932  ptr = nullptr;
2933  goto success;
2934 #undef CHK_
2935 }
2936 
2937 ::PROTOBUF_NAMESPACE_ID::uint8* SatParameters::_InternalSerialize(
2938  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2939  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SatParameters)
2940  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2941  (void) cached_has_bits;
2942 
2943  cached_has_bits = _has_bits_[0];
2944  // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
2945  if (cached_has_bits & 0x00000004u) {
2946  target = stream->EnsureSpace(target);
2947  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2948  1, this->_internal_preferred_variable_order(), target);
2949  }
2950 
2951  cached_has_bits = _has_bits_[1];
2952  // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
2953  if (cached_has_bits & 0x00040000u) {
2954  target = stream->EnsureSpace(target);
2955  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2956  2, this->_internal_initial_polarity(), target);
2957  }
2958 
2959  // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
2960  if (cached_has_bits & 0x00080000u) {
2961  target = stream->EnsureSpace(target);
2962  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
2963  4, this->_internal_minimization_algorithm(), target);
2964  }
2965 
2966  // optional int32 clause_cleanup_period = 11 [default = 10000];
2967  if (cached_has_bits & 0x00100000u) {
2968  target = stream->EnsureSpace(target);
2969  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(11, this->_internal_clause_cleanup_period(), target);
2970  }
2971 
2972  // optional int32 clause_cleanup_target = 13 [default = 10000];
2973  if (cached_has_bits & 0x00200000u) {
2974  target = stream->EnsureSpace(target);
2975  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(13, this->_internal_clause_cleanup_target(), target);
2976  }
2977 
2978  // optional double variable_activity_decay = 15 [default = 0.8];
2979  if (cached_has_bits & 0x00400000u) {
2980  target = stream->EnsureSpace(target);
2981  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_variable_activity_decay(), target);
2982  }
2983 
2984  // optional double max_variable_activity_value = 16 [default = 1e+100];
2985  if (cached_has_bits & 0x00800000u) {
2986  target = stream->EnsureSpace(target);
2987  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_max_variable_activity_value(), target);
2988  }
2989 
2990  // optional double clause_activity_decay = 17 [default = 0.999];
2991  if (cached_has_bits & 0x01000000u) {
2992  target = stream->EnsureSpace(target);
2993  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(17, this->_internal_clause_activity_decay(), target);
2994  }
2995 
2996  // optional double max_clause_activity_value = 18 [default = 1e+20];
2997  if (cached_has_bits & 0x02000000u) {
2998  target = stream->EnsureSpace(target);
2999  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(18, this->_internal_max_clause_activity_value(), target);
3000  }
3001 
3002  // optional double glucose_max_decay = 22 [default = 0.95];
3003  if (cached_has_bits & 0x04000000u) {
3004  target = stream->EnsureSpace(target);
3005  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_glucose_max_decay(), target);
3006  }
3007 
3008  // optional double glucose_decay_increment = 23 [default = 0.01];
3009  if (cached_has_bits & 0x08000000u) {
3010  target = stream->EnsureSpace(target);
3011  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(23, this->_internal_glucose_decay_increment(), target);
3012  }
3013 
3014  // optional int32 glucose_decay_increment_period = 24 [default = 5000];
3015  if (cached_has_bits & 0x10000000u) {
3016  target = stream->EnsureSpace(target);
3017  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(24, this->_internal_glucose_decay_increment_period(), target);
3018  }
3019 
3020  // optional int32 restart_period = 30 [default = 50];
3021  if (cached_has_bits & 0x20000000u) {
3022  target = stream->EnsureSpace(target);
3023  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(30, this->_internal_restart_period(), target);
3024  }
3025 
3026  // optional int32 random_seed = 31 [default = 1];
3027  if (cached_has_bits & 0x40000000u) {
3028  target = stream->EnsureSpace(target);
3029  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(31, this->_internal_random_seed(), target);
3030  }
3031 
3032  cached_has_bits = _has_bits_[0];
3033  // optional double random_branches_ratio = 32 [default = 0];
3034  if (cached_has_bits & 0x00000010u) {
3035  target = stream->EnsureSpace(target);
3036  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(32, this->_internal_random_branches_ratio(), target);
3037  }
3038 
3039  cached_has_bits = _has_bits_[2];
3040  // optional bool treat_binary_clauses_separately = 33 [default = true];
3041  if (cached_has_bits & 0x00000020u) {
3042  target = stream->EnsureSpace(target);
3043  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(33, this->_internal_treat_binary_clauses_separately(), target);
3044  }
3045 
3046  cached_has_bits = _has_bits_[1];
3047  // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FIRST];
3048  if (cached_has_bits & 0x80000000u) {
3049  target = stream->EnsureSpace(target);
3050  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3051  34, this->_internal_binary_minimization_algorithm(), target);
3052  }
3053 
3054  cached_has_bits = _has_bits_[3];
3055  // optional bool use_optimization_hints = 35 [default = true];
3056  if (cached_has_bits & 0x00004000u) {
3057  target = stream->EnsureSpace(target);
3058  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(35, this->_internal_use_optimization_hints(), target);
3059  }
3060 
3061  cached_has_bits = _has_bits_[2];
3062  // optional double max_time_in_seconds = 36 [default = inf];
3063  if (cached_has_bits & 0x00000001u) {
3064  target = stream->EnsureSpace(target);
3065  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(36, this->_internal_max_time_in_seconds(), target);
3066  }
3067 
3068  // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
3069  if (cached_has_bits & 0x00000002u) {
3070  target = stream->EnsureSpace(target);
3071  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(37, this->_internal_max_number_of_conflicts(), target);
3072  }
3073 
3074  // optional int64 max_memory_in_mb = 40 [default = 10000];
3075  if (cached_has_bits & 0x00000004u) {
3076  target = stream->EnsureSpace(target);
3077  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(40, this->_internal_max_memory_in_mb(), target);
3078  }
3079 
3080  cached_has_bits = _has_bits_[0];
3081  // optional bool log_search_progress = 41 [default = false];
3082  if (cached_has_bits & 0x00000800u) {
3083  target = stream->EnsureSpace(target);
3084  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(41, this->_internal_log_search_progress(), target);
3085  }
3086 
3087  // optional bool use_pb_resolution = 43 [default = false];
3088  if (cached_has_bits & 0x00200000u) {
3089  target = stream->EnsureSpace(target);
3090  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(43, this->_internal_use_pb_resolution(), target);
3091  }
3092 
3093  cached_has_bits = _has_bits_[2];
3094  // optional bool use_phase_saving = 44 [default = true];
3095  if (cached_has_bits & 0x00000008u) {
3096  target = stream->EnsureSpace(target);
3097  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(44, this->_internal_use_phase_saving(), target);
3098  }
3099 
3100  cached_has_bits = _has_bits_[0];
3101  // optional double random_polarity_ratio = 45 [default = 0];
3102  if (cached_has_bits & 0x00000020u) {
3103  target = stream->EnsureSpace(target);
3104  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(45, this->_internal_random_polarity_ratio(), target);
3105  }
3106 
3107  cached_has_bits = _has_bits_[2];
3108  // optional int32 pb_cleanup_increment = 46 [default = 200];
3109  if (cached_has_bits & 0x00000080u) {
3110  target = stream->EnsureSpace(target);
3111  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(46, this->_internal_pb_cleanup_increment(), target);
3112  }
3113 
3114  // optional double pb_cleanup_ratio = 47 [default = 0.5];
3115  if (cached_has_bits & 0x00000100u) {
3116  target = stream->EnsureSpace(target);
3117  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(47, this->_internal_pb_cleanup_ratio(), target);
3118  }
3119 
3120  cached_has_bits = _has_bits_[0];
3121  // optional bool minimize_reduction_during_pb_resolution = 48 [default = false];
3122  if (cached_has_bits & 0x00400000u) {
3123  target = stream->EnsureSpace(target);
3124  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(48, this->_internal_minimize_reduction_during_pb_resolution(), target);
3125  }
3126 
3127  cached_has_bits = _has_bits_[2];
3128  // optional bool count_assumption_levels_in_lbd = 49 [default = true];
3129  if (cached_has_bits & 0x00000040u) {
3130  target = stream->EnsureSpace(target);
3131  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(49, this->_internal_count_assumption_levels_in_lbd(), target);
3132  }
3133 
3134  // optional bool minimize_core = 50 [default = true];
3135  if (cached_has_bits & 0x00200000u) {
3136  target = stream->EnsureSpace(target);
3137  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(50, this->_internal_minimize_core(), target);
3138  }
3139 
3140  cached_has_bits = _has_bits_[0];
3141  // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
3142  if (cached_has_bits & 0x00000008u) {
3143  target = stream->EnsureSpace(target);
3144  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3145  51, this->_internal_max_sat_assumption_order(), target);
3146  }
3147 
3148  // optional bool max_sat_reverse_assumption_order = 52 [default = false];
3149  if (cached_has_bits & 0x00020000u) {
3150  target = stream->EnsureSpace(target);
3151  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(52, this->_internal_max_sat_reverse_assumption_order(), target);
3152  }
3153 
3154  cached_has_bits = _has_bits_[2];
3155  // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
3156  if (cached_has_bits & 0x00000200u) {
3157  target = stream->EnsureSpace(target);
3158  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3159  53, this->_internal_max_sat_stratification(), target);
3160  }
3161 
3162  // optional int32 presolve_bve_threshold = 54 [default = 500];
3163  if (cached_has_bits & 0x00000400u) {
3164  target = stream->EnsureSpace(target);
3165  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(54, this->_internal_presolve_bve_threshold(), target);
3166  }
3167 
3168  // optional int32 presolve_bve_clause_weight = 55 [default = 3];
3169  if (cached_has_bits & 0x00001000u) {
3170  target = stream->EnsureSpace(target);
3171  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(55, this->_internal_presolve_bve_clause_weight(), target);
3172  }
3173 
3174  // optional bool subsumption_during_conflict_analysis = 56 [default = true];
3175  if (cached_has_bits & 0x00000010u) {
3176  target = stream->EnsureSpace(target);
3177  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(56, this->_internal_subsumption_during_conflict_analysis(), target);
3178  }
3179 
3180  // optional double presolve_probing_deterministic_time_limit = 57 [default = 30];
3181  if (cached_has_bits & 0x00000800u) {
3182  target = stream->EnsureSpace(target);
3183  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(57, this->_internal_presolve_probing_deterministic_time_limit(), target);
3184  }
3185 
3186  cached_has_bits = _has_bits_[0];
3187  // optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [default = PROTECTION_NONE];
3188  if (cached_has_bits & 0x00000040u) {
3189  target = stream->EnsureSpace(target);
3190  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3191  58, this->_internal_clause_cleanup_protection(), target);
3192  }
3193 
3194  cached_has_bits = _has_bits_[2];
3195  // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
3196  if (cached_has_bits & 0x00002000u) {
3197  target = stream->EnsureSpace(target);
3198  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(59, this->_internal_clause_cleanup_lbd_bound(), target);
3199  }
3200 
3201  cached_has_bits = _has_bits_[0];
3202  // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
3203  if (cached_has_bits & 0x00000080u) {
3204  target = stream->EnsureSpace(target);
3205  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3206  60, this->_internal_clause_cleanup_ordering(), target);
3207  }
3208 
3209  // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
3210  for (int i = 0, n = this->_internal_restart_algorithms_size(); i < n; i++) {
3211  target = stream->EnsureSpace(target);
3212  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3213  61, this->_internal_restart_algorithms(i), target);
3214  }
3215 
3216  cached_has_bits = _has_bits_[2];
3217  // optional int32 restart_running_window_size = 62 [default = 50];
3218  if (cached_has_bits & 0x00008000u) {
3219  target = stream->EnsureSpace(target);
3220  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(62, this->_internal_restart_running_window_size(), target);
3221  }
3222 
3223  // optional double restart_dl_average_ratio = 63 [default = 1];
3224  if (cached_has_bits & 0x00004000u) {
3225  target = stream->EnsureSpace(target);
3226  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(63, this->_internal_restart_dl_average_ratio(), target);
3227  }
3228 
3229  cached_has_bits = _has_bits_[0];
3230  // optional bool use_blocking_restart = 64 [default = false];
3231  if (cached_has_bits & 0x00000400u) {
3232  target = stream->EnsureSpace(target);
3233  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(64, this->_internal_use_blocking_restart(), target);
3234  }
3235 
3236  cached_has_bits = _has_bits_[2];
3237  // optional int32 blocking_restart_window_size = 65 [default = 5000];
3238  if (cached_has_bits & 0x00010000u) {
3239  target = stream->EnsureSpace(target);
3240  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(65, this->_internal_blocking_restart_window_size(), target);
3241  }
3242 
3243  // optional double blocking_restart_multiplier = 66 [default = 1.4];
3244  if (cached_has_bits & 0x00020000u) {
3245  target = stream->EnsureSpace(target);
3246  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(66, this->_internal_blocking_restart_multiplier(), target);
3247  }
3248 
3249  // optional double max_deterministic_time = 67 [default = inf];
3250  if (cached_has_bits & 0x00040000u) {
3251  target = stream->EnsureSpace(target);
3252  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(67, this->_internal_max_deterministic_time(), target);
3253  }
3254 
3255  cached_has_bits = _has_bits_[0];
3256  // optional int32 num_conflicts_before_strategy_changes = 68 [default = 0];
3257  if (cached_has_bits & 0x00001000u) {
3258  target = stream->EnsureSpace(target);
3259  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(68, this->_internal_num_conflicts_before_strategy_changes(), target);
3260  }
3261 
3262  // optional double strategy_change_increase_ratio = 69 [default = 0];
3263  if (cached_has_bits & 0x00002000u) {
3264  target = stream->EnsureSpace(target);
3265  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(69, this->_internal_strategy_change_increase_ratio(), target);
3266  }
3267 
3268  // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
3269  if (cached_has_bits & 0x00000001u) {
3270  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
3271  this->_internal_default_restart_algorithms().data(), static_cast<int>(this->_internal_default_restart_algorithms().length()),
3272  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
3273  "operations_research.sat.SatParameters.default_restart_algorithms");
3274  target = stream->WriteStringMaybeAliased(
3275  70, this->_internal_default_restart_algorithms(), target);
3276  }
3277 
3278  cached_has_bits = _has_bits_[2];
3279  // optional double restart_lbd_average_ratio = 71 [default = 1];
3280  if (cached_has_bits & 0x00080000u) {
3281  target = stream->EnsureSpace(target);
3282  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(71, this->_internal_restart_lbd_average_ratio(), target);
3283  }
3284 
3285  // optional bool presolve_use_bva = 72 [default = true];
3286  if (cached_has_bits & 0x04000000u) {
3287  target = stream->EnsureSpace(target);
3288  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(72, this->_internal_presolve_use_bva(), target);
3289  }
3290 
3291  // optional int32 presolve_bva_threshold = 73 [default = 1];
3292  if (cached_has_bits & 0x00100000u) {
3293  target = stream->EnsureSpace(target);
3294  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(73, this->_internal_presolve_bva_threshold(), target);
3295  }
3296 
3297  // optional bool use_precedences_in_disjunctive_constraint = 74 [default = true];
3298  if (cached_has_bits & 0x01000000u) {
3299  target = stream->EnsureSpace(target);
3300  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(74, this->_internal_use_precedences_in_disjunctive_constraint(), target);
3301  }
3302 
3303  cached_has_bits = _has_bits_[0];
3304  // optional bool use_erwa_heuristic = 75 [default = false];
3305  if (cached_has_bits & 0x00000100u) {
3306  target = stream->EnsureSpace(target);
3307  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(75, this->_internal_use_erwa_heuristic(), target);
3308  }
3309 
3310  // optional double initial_variables_activity = 76 [default = 0];
3311  if (cached_has_bits & 0x00004000u) {
3312  target = stream->EnsureSpace(target);
3313  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(76, this->_internal_initial_variables_activity(), target);
3314  }
3315 
3316  // optional bool also_bump_variables_in_conflict_reasons = 77 [default = false];
3317  if (cached_has_bits & 0x00000200u) {
3318  target = stream->EnsureSpace(target);
3319  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(77, this->_internal_also_bump_variables_in_conflict_reasons(), target);
3320  }
3321 
3322  // optional bool use_overload_checker_in_cumulative_constraint = 78 [default = false];
3323  if (cached_has_bits & 0x00040000u) {
3324  target = stream->EnsureSpace(target);
3325  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(78, this->_internal_use_overload_checker_in_cumulative_constraint(), target);
3326  }
3327 
3328  // optional bool use_timetable_edge_finding_in_cumulative_constraint = 79 [default = false];
3329  if (cached_has_bits & 0x00080000u) {
3330  target = stream->EnsureSpace(target);
3331  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(79, this->_internal_use_timetable_edge_finding_in_cumulative_constraint(), target);
3332  }
3333 
3334  cached_has_bits = _has_bits_[3];
3335  // optional bool use_disjunctive_constraint_in_cumulative_constraint = 80 [default = true];
3336  if (cached_has_bits & 0x00010000u) {
3337  target = stream->EnsureSpace(target);
3338  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(80, this->_internal_use_disjunctive_constraint_in_cumulative_constraint(), target);
3339  }
3340 
3341  cached_has_bits = _has_bits_[0];
3342  // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
3343  if (cached_has_bits & 0x00008000u) {
3344  target = stream->EnsureSpace(target);
3345  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3346  82, this->_internal_search_branching(), target);
3347  }
3348 
3349  // optional bool optimize_with_core = 83 [default = false];
3350  if (cached_has_bits & 0x04000000u) {
3351  target = stream->EnsureSpace(target);
3352  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(83, this->_internal_optimize_with_core(), target);
3353  }
3354 
3355  cached_has_bits = _has_bits_[2];
3356  // optional bool find_multiple_cores = 84 [default = true];
3357  if (cached_has_bits & 0x00400000u) {
3358  target = stream->EnsureSpace(target);
3359  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(84, this->_internal_find_multiple_cores(), target);
3360  }
3361 
3362  cached_has_bits = _has_bits_[0];
3363  // optional bool optimize_with_max_hs = 85 [default = false];
3364  if (cached_has_bits & 0x08000000u) {
3365  target = stream->EnsureSpace(target);
3366  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(85, this->_internal_optimize_with_max_hs(), target);
3367  }
3368 
3369  cached_has_bits = _has_bits_[2];
3370  // optional bool cp_model_presolve = 86 [default = true];
3371  if (cached_has_bits & 0x08000000u) {
3372  target = stream->EnsureSpace(target);
3373  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(86, this->_internal_cp_model_presolve(), target);
3374  }
3375 
3376  cached_has_bits = _has_bits_[0];
3377  // optional bool enumerate_all_solutions = 87 [default = false];
3378  if (cached_has_bits & 0x10000000u) {
3379  target = stream->EnsureSpace(target);
3380  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(87, this->_internal_enumerate_all_solutions(), target);
3381  }
3382 
3383  cached_has_bits = _has_bits_[2];
3384  // optional bool presolve_blocked_clause = 88 [default = true];
3385  if (cached_has_bits & 0x02000000u) {
3386  target = stream->EnsureSpace(target);
3387  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(88, this->_internal_presolve_blocked_clause(), target);
3388  }
3389 
3390  // optional bool cover_optimization = 89 [default = true];
3391  if (cached_has_bits & 0x00800000u) {
3392  target = stream->EnsureSpace(target);
3393  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(89, this->_internal_cover_optimization(), target);
3394  }
3395 
3396  // optional int32 linearization_level = 90 [default = 1];
3397  if (cached_has_bits & 0x20000000u) {
3398  target = stream->EnsureSpace(target);
3399  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(90, this->_internal_linearization_level(), target);
3400  }
3401 
3402  // optional int32 max_num_cuts = 91 [default = 10000];
3403  if (cached_has_bits & 0x40000000u) {
3404  target = stream->EnsureSpace(target);
3405  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(91, this->_internal_max_num_cuts(), target);
3406  }
3407 
3408  cached_has_bits = _has_bits_[1];
3409  // optional bool only_add_cuts_at_level_zero = 92 [default = false];
3410  if (cached_has_bits & 0x00000002u) {
3411  target = stream->EnsureSpace(target);
3412  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(92, this->_internal_only_add_cuts_at_level_zero(), target);
3413  }
3414 
3415  cached_has_bits = _has_bits_[2];
3416  // optional bool cp_model_use_sat_presolve = 93 [default = true];
3417  if (cached_has_bits & 0x10000000u) {
3418  target = stream->EnsureSpace(target);
3419  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(93, this->_internal_cp_model_use_sat_presolve(), target);
3420  }
3421 
3422  cached_has_bits = _has_bits_[4];
3423  // optional bool exploit_integer_lp_solution = 94 [default = true];
3424  if (cached_has_bits & 0x00000040u) {
3425  target = stream->EnsureSpace(target);
3426  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(94, this->_internal_exploit_integer_lp_solution(), target);
3427  }
3428 
3429  cached_has_bits = _has_bits_[3];
3430  // optional bool auto_detect_greater_than_at_least_one_of = 95 [default = true];
3431  if (cached_has_bits & 0x00000100u) {
3432  target = stream->EnsureSpace(target);
3433  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(95, this->_internal_auto_detect_greater_than_at_least_one_of(), target);
3434  }
3435 
3436  cached_has_bits = _has_bits_[2];
3437  // optional int32 minimize_with_propagation_restart_period = 96 [default = 10];
3438  if (cached_has_bits & 0x80000000u) {
3439  target = stream->EnsureSpace(target);
3440  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(96, this->_internal_minimize_with_propagation_restart_period(), target);
3441  }
3442 
3443  cached_has_bits = _has_bits_[3];
3444  // optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
3445  if (cached_has_bits & 0x00000001u) {
3446  target = stream->EnsureSpace(target);
3447  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(97, this->_internal_minimize_with_propagation_num_decisions(), target);
3448  }
3449 
3450  cached_has_bits = _has_bits_[1];
3451  // optional bool stop_after_first_solution = 98 [default = false];
3452  if (cached_has_bits & 0x00000400u) {
3453  target = stream->EnsureSpace(target);
3454  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(98, this->_internal_stop_after_first_solution(), target);
3455  }
3456 
3457  cached_has_bits = _has_bits_[3];
3458  // optional int32 binary_search_num_conflicts = 99 [default = -1];
3459  if (cached_has_bits & 0x00000002u) {
3460  target = stream->EnsureSpace(target);
3461  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(99, this->_internal_binary_search_num_conflicts(), target);
3462  }
3463 
3464  // optional int32 num_search_workers = 100 [default = 1];
3465  if (cached_has_bits & 0x00000004u) {
3466  target = stream->EnsureSpace(target);
3467  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(100, this->_internal_num_search_workers(), target);
3468  }
3469 
3470  cached_has_bits = _has_bits_[0];
3471  // optional bool use_lns_only = 101 [default = false];
3472  if (cached_has_bits & 0x40000000u) {
3473  target = stream->EnsureSpace(target);
3474  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(101, this->_internal_use_lns_only(), target);
3475  }
3476 
3477  cached_has_bits = _has_bits_[1];
3478  // optional bool randomize_search = 103 [default = false];
3479  if (cached_has_bits & 0x00000040u) {
3480  target = stream->EnsureSpace(target);
3481  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(103, this->_internal_randomize_search(), target);
3482  }
3483 
3484  cached_has_bits = _has_bits_[0];
3485  // optional int64 search_randomization_tolerance = 104 [default = 0];
3486  if (cached_has_bits & 0x00100000u) {
3487  target = stream->EnsureSpace(target);
3488  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(104, this->_internal_search_randomization_tolerance(), target);
3489  }
3490 
3491  // optional bool lns_focus_on_decision_variables = 105 [default = false];
3492  if (cached_has_bits & 0x80000000u) {
3493  target = stream->EnsureSpace(target);
3494  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(105, this->_internal_lns_focus_on_decision_variables(), target);
3495  }
3496 
3497  cached_has_bits = _has_bits_[3];
3498  // optional bool instantiate_all_variables = 106 [default = true];
3499  if (cached_has_bits & 0x00000080u) {
3500  target = stream->EnsureSpace(target);
3501  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(106, this->_internal_instantiate_all_variables(), target);
3502  }
3503 
3504  // optional int32 boolean_encoding_level = 107 [default = 1];
3505  if (cached_has_bits & 0x00000008u) {
3506  target = stream->EnsureSpace(target);
3507  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(107, this->_internal_boolean_encoding_level(), target);
3508  }
3509 
3510  // optional bool use_optional_variables = 108 [default = true];
3511  if (cached_has_bits & 0x00400000u) {
3512  target = stream->EnsureSpace(target);
3513  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(108, this->_internal_use_optional_variables(), target);
3514  }
3515 
3516  // optional bool use_exact_lp_reason = 109 [default = true];
3517  if (cached_has_bits & 0x00800000u) {
3518  target = stream->EnsureSpace(target);
3519  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(109, this->_internal_use_exact_lp_reason(), target);
3520  }
3521 
3522  // optional int32 cp_model_probing_level = 110 [default = 2];
3523  if (cached_has_bits & 0x00000010u) {
3524  target = stream->EnsureSpace(target);
3525  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(110, this->_internal_cp_model_probing_level(), target);
3526  }
3527 
3528  cached_has_bits = _has_bits_[1];
3529  // optional bool add_knapsack_cuts = 111 [default = false];
3530  if (cached_has_bits & 0x00000004u) {
3531  target = stream->EnsureSpace(target);
3532  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(111, this->_internal_add_knapsack_cuts(), target);
3533  }
3534 
3535  cached_has_bits = _has_bits_[4];
3536  // optional bool add_lp_constraints_lazily = 112 [default = true];
3537  if (cached_has_bits & 0x00000020u) {
3538  target = stream->EnsureSpace(target);
3539  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(112, this->_internal_add_lp_constraints_lazily(), target);
3540  }
3541 
3542  cached_has_bits = _has_bits_[3];
3543  // optional bool share_objective_bounds = 113 [default = true];
3544  if (cached_has_bits & 0x80000000u) {
3545  target = stream->EnsureSpace(target);
3546  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(113, this->_internal_share_objective_bounds(), target);
3547  }
3548 
3549  cached_has_bits = _has_bits_[4];
3550  // optional bool share_level_zero_bounds = 114 [default = true];
3551  if (cached_has_bits & 0x00000001u) {
3552  target = stream->EnsureSpace(target);
3553  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(114, this->_internal_share_level_zero_bounds(), target);
3554  }
3555 
3556  cached_has_bits = _has_bits_[3];
3557  // optional double min_orthogonality_for_lp_constraints = 115 [default = 0.05];
3558  if (cached_has_bits & 0x00000200u) {
3559  target = stream->EnsureSpace(target);
3560  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(115, this->_internal_min_orthogonality_for_lp_constraints(), target);
3561  }
3562 
3563  // optional bool exploit_all_lp_solution = 116 [default = true];
3564  if (cached_has_bits & 0x00000020u) {
3565  target = stream->EnsureSpace(target);
3566  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(116, this->_internal_exploit_all_lp_solution(), target);
3567  }
3568 
3569  // optional bool add_cg_cuts = 117 [default = true];
3570  if (cached_has_bits & 0x00020000u) {
3571  target = stream->EnsureSpace(target);
3572  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(117, this->_internal_add_cg_cuts(), target);
3573  }
3574 
3575  // optional int32 max_integer_rounding_scaling = 119 [default = 600];
3576  if (cached_has_bits & 0x00000400u) {
3577  target = stream->EnsureSpace(target);
3578  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(119, this->_internal_max_integer_rounding_scaling(), target);
3579  }
3580 
3581  // optional bool add_mir_cuts = 120 [default = true];
3582  if (cached_has_bits & 0x00040000u) {
3583  target = stream->EnsureSpace(target);
3584  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(120, this->_internal_add_mir_cuts(), target);
3585  }
3586 
3587  // optional int32 max_consecutive_inactive_count = 121 [default = 100];
3588  if (cached_has_bits & 0x00008000u) {
3589  target = stream->EnsureSpace(target);
3590  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(121, this->_internal_max_consecutive_inactive_count(), target);
3591  }
3592 
3593  // optional int32 new_constraints_batch_size = 122 [default = 50];
3594  if (cached_has_bits & 0x00200000u) {
3595  target = stream->EnsureSpace(target);
3596  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(122, this->_internal_new_constraints_batch_size(), target);
3597  }
3598 
3599  // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
3600  if (cached_has_bits & 0x00100000u) {
3601  target = stream->EnsureSpace(target);
3602  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(123, this->_internal_pseudo_cost_reliability_threshold(), target);
3603  }
3604 
3605  // optional double mip_max_bound = 124 [default = 10000000];
3606  if (cached_has_bits & 0x04000000u) {
3607  target = stream->EnsureSpace(target);
3608  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(124, this->_internal_mip_max_bound(), target);
3609  }
3610 
3611  // optional double mip_var_scaling = 125 [default = 1];
3612  if (cached_has_bits & 0x08000000u) {
3613  target = stream->EnsureSpace(target);
3614  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(125, this->_internal_mip_var_scaling(), target);
3615  }
3616 
3617  // optional double mip_wanted_precision = 126 [default = 1e-06];
3618  if (cached_has_bits & 0x10000000u) {
3619  target = stream->EnsureSpace(target);
3620  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(126, this->_internal_mip_wanted_precision(), target);
3621  }
3622 
3623  // optional int32 mip_max_activity_exponent = 127 [default = 53];
3624  if (cached_has_bits & 0x40000000u) {
3625  target = stream->EnsureSpace(target);
3626  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(127, this->_internal_mip_max_activity_exponent(), target);
3627  }
3628 
3629  // optional double mip_check_precision = 128 [default = 0.001];
3630  if (cached_has_bits & 0x20000000u) {
3631  target = stream->EnsureSpace(target);
3632  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(128, this->_internal_mip_check_precision(), target);
3633  }
3634 
3635  cached_has_bits = _has_bits_[4];
3636  // optional bool use_rins_lns = 129 [default = true];
3637  if (cached_has_bits & 0x00000002u) {
3638  target = stream->EnsureSpace(target);
3639  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(129, this->_internal_use_rins_lns(), target);
3640  }
3641 
3642  cached_has_bits = _has_bits_[1];
3643  // optional bool exploit_best_solution = 130 [default = false];
3644  if (cached_has_bits & 0x00000010u) {
3645  target = stream->EnsureSpace(target);
3646  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(130, this->_internal_exploit_best_solution(), target);
3647  }
3648 
3649  cached_has_bits = _has_bits_[3];
3650  // optional bool exploit_objective = 131 [default = true];
3651  if (cached_has_bits & 0x00000040u) {
3652  target = stream->EnsureSpace(target);
3653  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(131, this->_internal_exploit_objective(), target);
3654  }
3655 
3656  cached_has_bits = _has_bits_[1];
3657  // optional bool fill_tightened_domains_in_response = 132 [default = false];
3658  if (cached_has_bits & 0x00000200u) {
3659  target = stream->EnsureSpace(target);
3660  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(132, this->_internal_fill_tightened_domains_in_response(), target);
3661  }
3662 
3663  // optional bool use_combined_no_overlap = 133 [default = false];
3664  if (cached_has_bits & 0x00000100u) {
3665  target = stream->EnsureSpace(target);
3666  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(133, this->_internal_use_combined_no_overlap(), target);
3667  }
3668 
3669  cached_has_bits = _has_bits_[4];
3670  // optional int32 interleave_batch_size = 134 [default = 1];
3671  if (cached_has_bits & 0x00000080u) {
3672  target = stream->EnsureSpace(target);
3673  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(134, this->_internal_interleave_batch_size(), target);
3674  }
3675 
3676  cached_has_bits = _has_bits_[3];
3677  // optional bool catch_sigint_signal = 135 [default = true];
3678  if (cached_has_bits & 0x01000000u) {
3679  target = stream->EnsureSpace(target);
3680  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(135, this->_internal_catch_sigint_signal(), target);
3681  }
3682 
3683  cached_has_bits = _has_bits_[1];
3684  // optional bool interleave_search = 136 [default = false];
3685  if (cached_has_bits & 0x00001000u) {
3686  target = stream->EnsureSpace(target);
3687  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(136, this->_internal_interleave_search(), target);
3688  }
3689 
3690  // optional bool diversify_lns_params = 137 [default = false];
3691  if (cached_has_bits & 0x00000020u) {
3692  target = stream->EnsureSpace(target);
3693  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(137, this->_internal_diversify_lns_params(), target);
3694  }
3695 
3696  cached_has_bits = _has_bits_[4];
3697  // optional int32 max_presolve_iterations = 138 [default = 3];
3698  if (cached_has_bits & 0x00000100u) {
3699  target = stream->EnsureSpace(target);
3700  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(138, this->_internal_max_presolve_iterations(), target);
3701  }
3702 
3703  cached_has_bits = _has_bits_[1];
3704  // optional bool use_branching_in_lp = 139 [default = false];
3705  if (cached_has_bits & 0x00000080u) {
3706  target = stream->EnsureSpace(target);
3707  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(139, this->_internal_use_branching_in_lp(), target);
3708  }
3709 
3710  cached_has_bits = _has_bits_[3];
3711  // optional bool expand_element_constraints = 140 [default = true];
3712  if (cached_has_bits & 0x00000800u) {
3713  target = stream->EnsureSpace(target);
3714  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(140, this->_internal_expand_element_constraints(), target);
3715  }
3716 
3717  cached_has_bits = _has_bits_[0];
3718  // optional bool reduce_memory_usage_in_interleave_mode = 141 [default = false];
3719  if (cached_has_bits & 0x20000000u) {
3720  target = stream->EnsureSpace(target);
3721  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(141, this->_internal_reduce_memory_usage_in_interleave_mode(), target);
3722  }
3723 
3724  cached_has_bits = _has_bits_[1];
3725  // optional int64 probing_period_at_root = 142 [default = 0];
3726  if (cached_has_bits & 0x00002000u) {
3727  target = stream->EnsureSpace(target);
3728  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(142, this->_internal_probing_period_at_root(), target);
3729  }
3730 
3731  cached_has_bits = _has_bits_[3];
3732  // optional bool expand_automaton_constraints = 143 [default = true];
3733  if (cached_has_bits & 0x00001000u) {
3734  target = stream->EnsureSpace(target);
3735  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(143, this->_internal_expand_automaton_constraints(), target);
3736  }
3737 
3738  // optional bool use_implied_bounds = 144 [default = true];
3739  if (cached_has_bits & 0x02000000u) {
3740  target = stream->EnsureSpace(target);
3741  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(144, this->_internal_use_implied_bounds(), target);
3742  }
3743 
3744  cached_has_bits = _has_bits_[4];
3745  // optional double merge_no_overlap_work_limit = 145 [default = 1000000000000];
3746  if (cached_has_bits & 0x00000400u) {
3747  target = stream->EnsureSpace(target);
3748  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(145, this->_internal_merge_no_overlap_work_limit(), target);
3749  }
3750 
3751  // optional double merge_at_most_one_work_limit = 146 [default = 100000000];
3752  if (cached_has_bits & 0x00000800u) {
3753  target = stream->EnsureSpace(target);
3754  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(146, this->_internal_merge_at_most_one_work_limit(), target);
3755  }
3756 
3757  // optional int32 presolve_substitution_level = 147 [default = 1];
3758  if (cached_has_bits & 0x00000200u) {
3759  target = stream->EnsureSpace(target);
3760  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(147, this->_internal_presolve_substitution_level(), target);
3761  }
3762 
3763  // optional int32 max_all_diff_cut_size = 148 [default = 7];
3764  if (cached_has_bits & 0x00001000u) {
3765  target = stream->EnsureSpace(target);
3766  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(148, this->_internal_max_all_diff_cut_size(), target);
3767  }
3768 
3769  cached_has_bits = _has_bits_[1];
3770  // optional bool stop_after_presolve = 149 [default = false];
3771  if (cached_has_bits & 0x00000800u) {
3772  target = stream->EnsureSpace(target);
3773  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(149, this->_internal_stop_after_presolve(), target);
3774  }
3775 
3776  // optional bool use_relaxation_lns = 150 [default = false];
3777  if (cached_has_bits & 0x00000001u) {
3778  target = stream->EnsureSpace(target);
3779  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(150, this->_internal_use_relaxation_lns(), target);
3780  }
3781 
3782  // optional int32 cp_model_max_num_presolve_operations = 151 [default = 0];
3783  if (cached_has_bits & 0x00004000u) {
3784  target = stream->EnsureSpace(target);
3785  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(151, this->_internal_cp_model_max_num_presolve_operations(), target);
3786  }
3787 
3788  cached_has_bits = _has_bits_[4];
3789  // optional bool add_lin_max_cuts = 152 [default = true];
3790  if (cached_has_bits & 0x00000010u) {
3791  target = stream->EnsureSpace(target);
3792  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(152, this->_internal_add_lin_max_cuts(), target);
3793  }
3794 
3795  // optional int32 hint_conflict_limit = 153 [default = 10];
3796  if (cached_has_bits & 0x00002000u) {
3797  target = stream->EnsureSpace(target);
3798  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(153, this->_internal_hint_conflict_limit(), target);
3799  }
3800 
3801  // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
3802  if (cached_has_bits & 0x00008000u) {
3803  target = stream->EnsureSpace(target);
3804  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(154, this->_internal_max_cut_rounds_at_level_zero(), target);
3805  }
3806 
3807  // optional double cut_max_active_count_value = 155 [default = 10000000000];
3808  if (cached_has_bits & 0x00004000u) {
3809  target = stream->EnsureSpace(target);
3810  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(155, this->_internal_cut_max_active_count_value(), target);
3811  }
3812 
3813  // optional double cut_active_count_decay = 156 [default = 0.8];
3814  if (cached_has_bits & 0x00020000u) {
3815  target = stream->EnsureSpace(target);
3816  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(156, this->_internal_cut_active_count_decay(), target);
3817  }
3818 
3819  // optional int32 cut_cleanup_target = 157 [default = 1000];
3820  if (cached_has_bits & 0x00010000u) {
3821  target = stream->EnsureSpace(target);
3822  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(157, this->_internal_cut_cleanup_target(), target);
3823  }
3824 
3825  cached_has_bits = _has_bits_[3];
3826  // optional bool expand_table_constraints = 158 [default = true];
3827  if (cached_has_bits & 0x00002000u) {
3828  target = stream->EnsureSpace(target);
3829  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(158, this->_internal_expand_table_constraints(), target);
3830  }
3831 
3832  cached_has_bits = _has_bits_[1];
3833  // optional double absolute_gap_limit = 159 [default = 0];
3834  if (cached_has_bits & 0x00008000u) {
3835  target = stream->EnsureSpace(target);
3836  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(159, this->_internal_absolute_gap_limit(), target);
3837  }
3838 
3839  // optional double relative_gap_limit = 160 [default = 0];
3840  if (cached_has_bits & 0x00010000u) {
3841  target = stream->EnsureSpace(target);
3842  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(160, this->_internal_relative_gap_limit(), target);
3843  }
3844 
3845  cached_has_bits = _has_bits_[0];
3846  // optional bool exploit_relaxation_solution = 161 [default = false];
3847  if (cached_has_bits & 0x02000000u) {
3848  target = stream->EnsureSpace(target);
3849  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(161, this->_internal_exploit_relaxation_solution(), target);
3850  }
3851 
3852  // optional bool cp_model_postsolve_with_full_solver = 162 [default = false];
3853  if (cached_has_bits & 0x00800000u) {
3854  target = stream->EnsureSpace(target);
3855  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(162, this->_internal_cp_model_postsolve_with_full_solver(), target);
3856  }
3857 
3858  // optional bool use_sat_inprocessing = 163 [default = false];
3859  if (cached_has_bits & 0x01000000u) {
3860  target = stream->EnsureSpace(target);
3861  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(163, this->_internal_use_sat_inprocessing(), target);
3862  }
3863 
3864  cached_has_bits = _has_bits_[4];
3865  // optional bool use_feasibility_pump = 164 [default = true];
3866  if (cached_has_bits & 0x00000004u) {
3867  target = stream->EnsureSpace(target);
3868  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(164, this->_internal_use_feasibility_pump(), target);
3869  }
3870 
3871  // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
3872  if (cached_has_bits & 0x00040000u) {
3873  target = stream->EnsureSpace(target);
3874  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
3875  165, this->_internal_fp_rounding(), target);
3876  }
3877 
3878  // optional bool mip_automatically_scale_variables = 166 [default = true];
3879  if (cached_has_bits & 0x00080000u) {
3880  target = stream->EnsureSpace(target);
3881  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(166, this->_internal_mip_automatically_scale_variables(), target);
3882  }
3883 
3884  cached_has_bits = _has_bits_[1];
3885  // optional bool repair_hint = 167 [default = false];
3886  if (cached_has_bits & 0x00000008u) {
3887  target = stream->EnsureSpace(target);
3888  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(167, this->_internal_repair_hint(), target);
3889  }
3890 
3891  // optional int32 polarity_rephase_increment = 168 [default = 1000];
3892  if (cached_has_bits & 0x00020000u) {
3893  target = stream->EnsureSpace(target);
3894  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(168, this->_internal_polarity_rephase_increment(), target);
3895  }
3896 
3897  cached_has_bits = _has_bits_[3];
3898  // optional bool add_zero_half_cuts = 169 [default = true];
3899  if (cached_has_bits & 0x00080000u) {
3900  target = stream->EnsureSpace(target);
3901  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(169, this->_internal_add_zero_half_cuts(), target);
3902  }
3903 
3904  cached_has_bits = _has_bits_[0];
3905  // optional bool expand_alldiff_constraints = 170 [default = false];
3906  if (cached_has_bits & 0x00010000u) {
3907  target = stream->EnsureSpace(target);
3908  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(170, this->_internal_expand_alldiff_constraints(), target);
3909  }
3910 
3911  // optional string name = 171 [default = ""];
3912  if (cached_has_bits & 0x00000002u) {
3913  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
3914  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
3915  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
3916  "operations_research.sat.SatParameters.name");
3917  target = stream->WriteStringMaybeAliased(
3918  171, this->_internal_name(), target);
3919  }
3920 
3921  cached_has_bits = _has_bits_[4];
3922  // optional bool add_clique_cuts = 172 [default = true];
3923  if (cached_has_bits & 0x00000008u) {
3924  target = stream->EnsureSpace(target);
3925  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(172, this->_internal_add_clique_cuts(), target);
3926  }
3927 
3928  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3929  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3930  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3931  }
3932  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SatParameters)
3933  return target;
3934 }
3935 
3936 size_t SatParameters::ByteSizeLong() const {
3937 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SatParameters)
3938  size_t total_size = 0;
3939 
3940  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3941  // Prevent compiler warnings about cached_has_bits being unused
3942  (void) cached_has_bits;
3943 
3944  // repeated .operations_research.sat.SatParameters.RestartAlgorithm restart_algorithms = 61;
3945  {
3946  size_t data_size = 0;
3947  unsigned int count = static_cast<unsigned int>(this->_internal_restart_algorithms_size());for (unsigned int i = 0; i < count; i++) {
3948  data_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(
3949  this->_internal_restart_algorithms(static_cast<int>(i)));
3950  }
3951  total_size += (2UL * count) + data_size;
3952  }
3953 
3954  cached_has_bits = _has_bits_[0];
3955  if (cached_has_bits & 0x000000ffu) {
3956  // optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART"];
3957  if (cached_has_bits & 0x00000001u) {
3958  total_size += 2 +
3959  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
3960  this->_internal_default_restart_algorithms());
3961  }
3962 
3963  // optional string name = 171 [default = ""];
3964  if (cached_has_bits & 0x00000002u) {
3965  total_size += 2 +
3966  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
3967  this->_internal_name());
3968  }
3969 
3970  // optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default = IN_ORDER];
3971  if (cached_has_bits & 0x00000004u) {
3972  total_size += 1 +
3973  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_preferred_variable_order());
3974  }
3975 
3976  // optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [default = DEFAULT_ASSUMPTION_ORDER];
3977  if (cached_has_bits & 0x00000008u) {
3978  total_size += 2 +
3979  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_max_sat_assumption_order());
3980  }
3981 
3982  // optional double random_branches_ratio = 32 [default = 0];
3983  if (cached_has_bits & 0x00000010u) {
3984  total_size += 2 + 8;
3985  }
3986 
3987  // optional double random_polarity_ratio = 45 [default = 0];
3988  if (cached_has_bits & 0x00000020u) {
3989  total_size += 2 + 8;
3990  }
3991 
3992  // optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [default = PROTECTION_NONE];
3993  if (cached_has_bits & 0x00000040u) {
3994  total_size += 2 +
3995  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_clause_cleanup_protection());
3996  }
3997 
3998  // optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default = CLAUSE_ACTIVITY];
3999  if (cached_has_bits & 0x00000080u) {
4000  total_size += 2 +
4001  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_clause_cleanup_ordering());
4002  }
4003 
4004  }
4005  if (cached_has_bits & 0x0000ff00u) {
4006  // optional bool use_erwa_heuristic = 75 [default = false];
4007  if (cached_has_bits & 0x00000100u) {
4008  total_size += 2 + 1;
4009  }
4010 
4011  // optional bool also_bump_variables_in_conflict_reasons = 77 [default = false];
4012  if (cached_has_bits & 0x00000200u) {
4013  total_size += 2 + 1;
4014  }
4015 
4016  // optional bool use_blocking_restart = 64 [default = false];
4017  if (cached_has_bits & 0x00000400u) {
4018  total_size += 2 + 1;
4019  }
4020 
4021  // optional bool log_search_progress = 41 [default = false];
4022  if (cached_has_bits & 0x00000800u) {
4023  total_size += 2 + 1;
4024  }
4025 
4026  // optional int32 num_conflicts_before_strategy_changes = 68 [default = 0];
4027  if (cached_has_bits & 0x00001000u) {
4028  total_size += 2 +
4029  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4030  this->_internal_num_conflicts_before_strategy_changes());
4031  }
4032 
4033  // optional double strategy_change_increase_ratio = 69 [default = 0];
4034  if (cached_has_bits & 0x00002000u) {
4035  total_size += 2 + 8;
4036  }
4037 
4038  // optional double initial_variables_activity = 76 [default = 0];
4039  if (cached_has_bits & 0x00004000u) {
4040  total_size += 2 + 8;
4041  }
4042 
4043  // optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTOMATIC_SEARCH];
4044  if (cached_has_bits & 0x00008000u) {
4045  total_size += 2 +
4046  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_search_branching());
4047  }
4048 
4049  }
4050  if (cached_has_bits & 0x00ff0000u) {
4051  // optional bool expand_alldiff_constraints = 170 [default = false];
4052  if (cached_has_bits & 0x00010000u) {
4053  total_size += 2 + 1;
4054  }
4055 
4056  // optional bool max_sat_reverse_assumption_order = 52 [default = false];
4057  if (cached_has_bits & 0x00020000u) {
4058  total_size += 2 + 1;
4059  }
4060 
4061  // optional bool use_overload_checker_in_cumulative_constraint = 78 [default = false];
4062  if (cached_has_bits & 0x00040000u) {
4063  total_size += 2 + 1;
4064  }
4065 
4066  // optional bool use_timetable_edge_finding_in_cumulative_constraint = 79 [default = false];
4067  if (cached_has_bits & 0x00080000u) {
4068  total_size += 2 + 1;
4069  }
4070 
4071  // optional int64 search_randomization_tolerance = 104 [default = 0];
4072  if (cached_has_bits & 0x00100000u) {
4073  total_size += 2 +
4074  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4075  this->_internal_search_randomization_tolerance());
4076  }
4077 
4078  // optional bool use_pb_resolution = 43 [default = false];
4079  if (cached_has_bits & 0x00200000u) {
4080  total_size += 2 + 1;
4081  }
4082 
4083  // optional bool minimize_reduction_during_pb_resolution = 48 [default = false];
4084  if (cached_has_bits & 0x00400000u) {
4085  total_size += 2 + 1;
4086  }
4087 
4088  // optional bool cp_model_postsolve_with_full_solver = 162 [default = false];
4089  if (cached_has_bits & 0x00800000u) {
4090  total_size += 2 + 1;
4091  }
4092 
4093  }
4094  if (cached_has_bits & 0xff000000u) {
4095  // optional bool use_sat_inprocessing = 163 [default = false];
4096  if (cached_has_bits & 0x01000000u) {
4097  total_size += 2 + 1;
4098  }
4099 
4100  // optional bool exploit_relaxation_solution = 161 [default = false];
4101  if (cached_has_bits & 0x02000000u) {
4102  total_size += 2 + 1;
4103  }
4104 
4105  // optional bool optimize_with_core = 83 [default = false];
4106  if (cached_has_bits & 0x04000000u) {
4107  total_size += 2 + 1;
4108  }
4109 
4110  // optional bool optimize_with_max_hs = 85 [default = false];
4111  if (cached_has_bits & 0x08000000u) {
4112  total_size += 2 + 1;
4113  }
4114 
4115  // optional bool enumerate_all_solutions = 87 [default = false];
4116  if (cached_has_bits & 0x10000000u) {
4117  total_size += 2 + 1;
4118  }
4119 
4120  // optional bool reduce_memory_usage_in_interleave_mode = 141 [default = false];
4121  if (cached_has_bits & 0x20000000u) {
4122  total_size += 2 + 1;
4123  }
4124 
4125  // optional bool use_lns_only = 101 [default = false];
4126  if (cached_has_bits & 0x40000000u) {
4127  total_size += 2 + 1;
4128  }
4129 
4130  // optional bool lns_focus_on_decision_variables = 105 [default = false];
4131  if (cached_has_bits & 0x80000000u) {
4132  total_size += 2 + 1;
4133  }
4134 
4135  }
4136  cached_has_bits = _has_bits_[1];
4137  if (cached_has_bits & 0x000000ffu) {
4138  // optional bool use_relaxation_lns = 150 [default = false];
4139  if (cached_has_bits & 0x00000001u) {
4140  total_size += 2 + 1;
4141  }
4142 
4143  // optional bool only_add_cuts_at_level_zero = 92 [default = false];
4144  if (cached_has_bits & 0x00000002u) {
4145  total_size += 2 + 1;
4146  }
4147 
4148  // optional bool add_knapsack_cuts = 111 [default = false];
4149  if (cached_has_bits & 0x00000004u) {
4150  total_size += 2 + 1;
4151  }
4152 
4153  // optional bool repair_hint = 167 [default = false];
4154  if (cached_has_bits & 0x00000008u) {
4155  total_size += 2 + 1;
4156  }
4157 
4158  // optional bool exploit_best_solution = 130 [default = false];
4159  if (cached_has_bits & 0x00000010u) {
4160  total_size += 2 + 1;
4161  }
4162 
4163  // optional bool diversify_lns_params = 137 [default = false];
4164  if (cached_has_bits & 0x00000020u) {
4165  total_size += 2 + 1;
4166  }
4167 
4168  // optional bool randomize_search = 103 [default = false];
4169  if (cached_has_bits & 0x00000040u) {
4170  total_size += 2 + 1;
4171  }
4172 
4173  // optional bool use_branching_in_lp = 139 [default = false];
4174  if (cached_has_bits & 0x00000080u) {
4175  total_size += 2 + 1;
4176  }
4177 
4178  }
4179  if (cached_has_bits & 0x0000ff00u) {
4180  // optional bool use_combined_no_overlap = 133 [default = false];
4181  if (cached_has_bits & 0x00000100u) {
4182  total_size += 2 + 1;
4183  }
4184 
4185  // optional bool fill_tightened_domains_in_response = 132 [default = false];
4186  if (cached_has_bits & 0x00000200u) {
4187  total_size += 2 + 1;
4188  }
4189 
4190  // optional bool stop_after_first_solution = 98 [default = false];
4191  if (cached_has_bits & 0x00000400u) {
4192  total_size += 2 + 1;
4193  }
4194 
4195  // optional bool stop_after_presolve = 149 [default = false];
4196  if (cached_has_bits & 0x00000800u) {
4197  total_size += 2 + 1;
4198  }
4199 
4200  // optional bool interleave_search = 136 [default = false];
4201  if (cached_has_bits & 0x00001000u) {
4202  total_size += 2 + 1;
4203  }
4204 
4205  // optional int64 probing_period_at_root = 142 [default = 0];
4206  if (cached_has_bits & 0x00002000u) {
4207  total_size += 2 +
4208  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4209  this->_internal_probing_period_at_root());
4210  }
4211 
4212  // optional int32 cp_model_max_num_presolve_operations = 151 [default = 0];
4213  if (cached_has_bits & 0x00004000u) {
4214  total_size += 2 +
4215  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4216  this->_internal_cp_model_max_num_presolve_operations());
4217  }
4218 
4219  // optional double absolute_gap_limit = 159 [default = 0];
4220  if (cached_has_bits & 0x00008000u) {
4221  total_size += 2 + 8;
4222  }
4223 
4224  }
4225  if (cached_has_bits & 0x00ff0000u) {
4226  // optional double relative_gap_limit = 160 [default = 0];
4227  if (cached_has_bits & 0x00010000u) {
4228  total_size += 2 + 8;
4229  }
4230 
4231  // optional int32 polarity_rephase_increment = 168 [default = 1000];
4232  if (cached_has_bits & 0x00020000u) {
4233  total_size += 2 +
4234  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4235  this->_internal_polarity_rephase_increment());
4236  }
4237 
4238  // optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FALSE];
4239  if (cached_has_bits & 0x00040000u) {
4240  total_size += 1 +
4241  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_initial_polarity());
4242  }
4243 
4244  // optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm = 4 [default = RECURSIVE];
4245  if (cached_has_bits & 0x00080000u) {
4246  total_size += 1 +
4247  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_minimization_algorithm());
4248  }
4249 
4250  // optional int32 clause_cleanup_period = 11 [default = 10000];
4251  if (cached_has_bits & 0x00100000u) {
4252  total_size += 1 +
4253  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4254  this->_internal_clause_cleanup_period());
4255  }
4256 
4257  // optional int32 clause_cleanup_target = 13 [default = 10000];
4258  if (cached_has_bits & 0x00200000u) {
4259  total_size += 1 +
4260  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4261  this->_internal_clause_cleanup_target());
4262  }
4263 
4264  // optional double variable_activity_decay = 15 [default = 0.8];
4265  if (cached_has_bits & 0x00400000u) {
4266  total_size += 1 + 8;
4267  }
4268 
4269  // optional double max_variable_activity_value = 16 [default = 1e+100];
4270  if (cached_has_bits & 0x00800000u) {
4271  total_size += 2 + 8;
4272  }
4273 
4274  }
4275  if (cached_has_bits & 0xff000000u) {
4276  // optional double clause_activity_decay = 17 [default = 0.999];
4277  if (cached_has_bits & 0x01000000u) {
4278  total_size += 2 + 8;
4279  }
4280 
4281  // optional double max_clause_activity_value = 18 [default = 1e+20];
4282  if (cached_has_bits & 0x02000000u) {
4283  total_size += 2 + 8;
4284  }
4285 
4286  // optional double glucose_max_decay = 22 [default = 0.95];
4287  if (cached_has_bits & 0x04000000u) {
4288  total_size += 2 + 8;
4289  }
4290 
4291  // optional double glucose_decay_increment = 23 [default = 0.01];
4292  if (cached_has_bits & 0x08000000u) {
4293  total_size += 2 + 8;
4294  }
4295 
4296  // optional int32 glucose_decay_increment_period = 24 [default = 5000];
4297  if (cached_has_bits & 0x10000000u) {
4298  total_size += 2 +
4299  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4300  this->_internal_glucose_decay_increment_period());
4301  }
4302 
4303  // optional int32 restart_period = 30 [default = 50];
4304  if (cached_has_bits & 0x20000000u) {
4305  total_size += 2 +
4306  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4307  this->_internal_restart_period());
4308  }
4309 
4310  // optional int32 random_seed = 31 [default = 1];
4311  if (cached_has_bits & 0x40000000u) {
4312  total_size += 2 +
4313  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4314  this->_internal_random_seed());
4315  }
4316 
4317  // optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorithm = 34 [default = BINARY_MINIMIZATION_FIRST];
4318  if (cached_has_bits & 0x80000000u) {
4319  total_size += 2 +
4320  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_binary_minimization_algorithm());
4321  }
4322 
4323  }
4324  cached_has_bits = _has_bits_[2];
4325  if (cached_has_bits & 0x000000ffu) {
4326  // optional double max_time_in_seconds = 36 [default = inf];
4327  if (cached_has_bits & 0x00000001u) {
4328  total_size += 2 + 8;
4329  }
4330 
4331  // optional int64 max_number_of_conflicts = 37 [default = 9223372036854775807];
4332  if (cached_has_bits & 0x00000002u) {
4333  total_size += 2 +
4334  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4335  this->_internal_max_number_of_conflicts());
4336  }
4337 
4338  // optional int64 max_memory_in_mb = 40 [default = 10000];
4339  if (cached_has_bits & 0x00000004u) {
4340  total_size += 2 +
4341  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4342  this->_internal_max_memory_in_mb());
4343  }
4344 
4345  // optional bool use_phase_saving = 44 [default = true];
4346  if (cached_has_bits & 0x00000008u) {
4347  total_size += 2 + 1;
4348  }
4349 
4350  // optional bool subsumption_during_conflict_analysis = 56 [default = true];
4351  if (cached_has_bits & 0x00000010u) {
4352  total_size += 2 + 1;
4353  }
4354 
4355  // optional bool treat_binary_clauses_separately = 33 [default = true];
4356  if (cached_has_bits & 0x00000020u) {
4357  total_size += 2 + 1;
4358  }
4359 
4360  // optional bool count_assumption_levels_in_lbd = 49 [default = true];
4361  if (cached_has_bits & 0x00000040u) {
4362  total_size += 2 + 1;
4363  }
4364 
4365  // optional int32 pb_cleanup_increment = 46 [default = 200];
4366  if (cached_has_bits & 0x00000080u) {
4367  total_size += 2 +
4368  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4369  this->_internal_pb_cleanup_increment());
4370  }
4371 
4372  }
4373  if (cached_has_bits & 0x0000ff00u) {
4374  // optional double pb_cleanup_ratio = 47 [default = 0.5];
4375  if (cached_has_bits & 0x00000100u) {
4376  total_size += 2 + 8;
4377  }
4378 
4379  // optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification = 53 [default = STRATIFICATION_DESCENT];
4380  if (cached_has_bits & 0x00000200u) {
4381  total_size += 2 +
4382  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_max_sat_stratification());
4383  }
4384 
4385  // optional int32 presolve_bve_threshold = 54 [default = 500];
4386  if (cached_has_bits & 0x00000400u) {
4387  total_size += 2 +
4388  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4389  this->_internal_presolve_bve_threshold());
4390  }
4391 
4392  // optional double presolve_probing_deterministic_time_limit = 57 [default = 30];
4393  if (cached_has_bits & 0x00000800u) {
4394  total_size += 2 + 8;
4395  }
4396 
4397  // optional int32 presolve_bve_clause_weight = 55 [default = 3];
4398  if (cached_has_bits & 0x00001000u) {
4399  total_size += 2 +
4400  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4401  this->_internal_presolve_bve_clause_weight());
4402  }
4403 
4404  // optional int32 clause_cleanup_lbd_bound = 59 [default = 5];
4405  if (cached_has_bits & 0x00002000u) {
4406  total_size += 2 +
4407  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4408  this->_internal_clause_cleanup_lbd_bound());
4409  }
4410 
4411  // optional double restart_dl_average_ratio = 63 [default = 1];
4412  if (cached_has_bits & 0x00004000u) {
4413  total_size += 2 + 8;
4414  }
4415 
4416  // optional int32 restart_running_window_size = 62 [default = 50];
4417  if (cached_has_bits & 0x00008000u) {
4418  total_size += 2 +
4419  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4420  this->_internal_restart_running_window_size());
4421  }
4422 
4423  }
4424  if (cached_has_bits & 0x00ff0000u) {
4425  // optional int32 blocking_restart_window_size = 65 [default = 5000];
4426  if (cached_has_bits & 0x00010000u) {
4427  total_size += 2 +
4428  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4429  this->_internal_blocking_restart_window_size());
4430  }
4431 
4432  // optional double blocking_restart_multiplier = 66 [default = 1.4];
4433  if (cached_has_bits & 0x00020000u) {
4434  total_size += 2 + 8;
4435  }
4436 
4437  // optional double max_deterministic_time = 67 [default = inf];
4438  if (cached_has_bits & 0x00040000u) {
4439  total_size += 2 + 8;
4440  }
4441 
4442  // optional double restart_lbd_average_ratio = 71 [default = 1];
4443  if (cached_has_bits & 0x00080000u) {
4444  total_size += 2 + 8;
4445  }
4446 
4447  // optional int32 presolve_bva_threshold = 73 [default = 1];
4448  if (cached_has_bits & 0x00100000u) {
4449  total_size += 2 +
4450  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4451  this->_internal_presolve_bva_threshold());
4452  }
4453 
4454  // optional bool minimize_core = 50 [default = true];
4455  if (cached_has_bits & 0x00200000u) {
4456  total_size += 2 + 1;
4457  }
4458 
4459  // optional bool find_multiple_cores = 84 [default = true];
4460  if (cached_has_bits & 0x00400000u) {
4461  total_size += 2 + 1;
4462  }
4463 
4464  // optional bool cover_optimization = 89 [default = true];
4465  if (cached_has_bits & 0x00800000u) {
4466  total_size += 2 + 1;
4467  }
4468 
4469  }
4470  if (cached_has_bits & 0xff000000u) {
4471  // optional bool use_precedences_in_disjunctive_constraint = 74 [default = true];
4472  if (cached_has_bits & 0x01000000u) {
4473  total_size += 2 + 1;
4474  }
4475 
4476  // optional bool presolve_blocked_clause = 88 [default = true];
4477  if (cached_has_bits & 0x02000000u) {
4478  total_size += 2 + 1;
4479  }
4480 
4481  // optional bool presolve_use_bva = 72 [default = true];
4482  if (cached_has_bits & 0x04000000u) {
4483  total_size += 2 + 1;
4484  }
4485 
4486  // optional bool cp_model_presolve = 86 [default = true];
4487  if (cached_has_bits & 0x08000000u) {
4488  total_size += 2 + 1;
4489  }
4490 
4491  // optional bool cp_model_use_sat_presolve = 93 [default = true];
4492  if (cached_has_bits & 0x10000000u) {
4493  total_size += 2 + 1;
4494  }
4495 
4496  // optional int32 linearization_level = 90 [default = 1];
4497  if (cached_has_bits & 0x20000000u) {
4498  total_size += 2 +
4499  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4500  this->_internal_linearization_level());
4501  }
4502 
4503  // optional int32 max_num_cuts = 91 [default = 10000];
4504  if (cached_has_bits & 0x40000000u) {
4505  total_size += 2 +
4506  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4507  this->_internal_max_num_cuts());
4508  }
4509 
4510  // optional int32 minimize_with_propagation_restart_period = 96 [default = 10];
4511  if (cached_has_bits & 0x80000000u) {
4512  total_size += 2 +
4513  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4514  this->_internal_minimize_with_propagation_restart_period());
4515  }
4516 
4517  }
4518  cached_has_bits = _has_bits_[3];
4519  if (cached_has_bits & 0x000000ffu) {
4520  // optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
4521  if (cached_has_bits & 0x00000001u) {
4522  total_size += 2 +
4523  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4524  this->_internal_minimize_with_propagation_num_decisions());
4525  }
4526 
4527  // optional int32 binary_search_num_conflicts = 99 [default = -1];
4528  if (cached_has_bits & 0x00000002u) {
4529  total_size += 2 +
4530  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4531  this->_internal_binary_search_num_conflicts());
4532  }
4533 
4534  // optional int32 num_search_workers = 100 [default = 1];
4535  if (cached_has_bits & 0x00000004u) {
4536  total_size += 2 +
4537  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4538  this->_internal_num_search_workers());
4539  }
4540 
4541  // optional int32 boolean_encoding_level = 107 [default = 1];
4542  if (cached_has_bits & 0x00000008u) {
4543  total_size += 2 +
4544  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4545  this->_internal_boolean_encoding_level());
4546  }
4547 
4548  // optional int32 cp_model_probing_level = 110 [default = 2];
4549  if (cached_has_bits & 0x00000010u) {
4550  total_size += 2 +
4551  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4552  this->_internal_cp_model_probing_level());
4553  }
4554 
4555  // optional bool exploit_all_lp_solution = 116 [default = true];
4556  if (cached_has_bits & 0x00000020u) {
4557  total_size += 2 + 1;
4558  }
4559 
4560  // optional bool exploit_objective = 131 [default = true];
4561  if (cached_has_bits & 0x00000040u) {
4562  total_size += 2 + 1;
4563  }
4564 
4565  // optional bool instantiate_all_variables = 106 [default = true];
4566  if (cached_has_bits & 0x00000080u) {
4567  total_size += 2 + 1;
4568  }
4569 
4570  }
4571  if (cached_has_bits & 0x0000ff00u) {
4572  // optional bool auto_detect_greater_than_at_least_one_of = 95 [default = true];
4573  if (cached_has_bits & 0x00000100u) {
4574  total_size += 2 + 1;
4575  }
4576 
4577  // optional double min_orthogonality_for_lp_constraints = 115 [default = 0.05];
4578  if (cached_has_bits & 0x00000200u) {
4579  total_size += 2 + 8;
4580  }
4581 
4582  // optional int32 max_integer_rounding_scaling = 119 [default = 600];
4583  if (cached_has_bits & 0x00000400u) {
4584  total_size += 2 +
4585  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4586  this->_internal_max_integer_rounding_scaling());
4587  }
4588 
4589  // optional bool expand_element_constraints = 140 [default = true];
4590  if (cached_has_bits & 0x00000800u) {
4591  total_size += 2 + 1;
4592  }
4593 
4594  // optional bool expand_automaton_constraints = 143 [default = true];
4595  if (cached_has_bits & 0x00001000u) {
4596  total_size += 2 + 1;
4597  }
4598 
4599  // optional bool expand_table_constraints = 158 [default = true];
4600  if (cached_has_bits & 0x00002000u) {
4601  total_size += 2 + 1;
4602  }
4603 
4604  // optional bool use_optimization_hints = 35 [default = true];
4605  if (cached_has_bits & 0x00004000u) {
4606  total_size += 2 + 1;
4607  }
4608 
4609  // optional int32 max_consecutive_inactive_count = 121 [default = 100];
4610  if (cached_has_bits & 0x00008000u) {
4611  total_size += 2 +
4612  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4613  this->_internal_max_consecutive_inactive_count());
4614  }
4615 
4616  }
4617  if (cached_has_bits & 0x00ff0000u) {
4618  // optional bool use_disjunctive_constraint_in_cumulative_constraint = 80 [default = true];
4619  if (cached_has_bits & 0x00010000u) {
4620  total_size += 2 + 1;
4621  }
4622 
4623  // optional bool add_cg_cuts = 117 [default = true];
4624  if (cached_has_bits & 0x00020000u) {
4625  total_size += 2 + 1;
4626  }
4627 
4628  // optional bool add_mir_cuts = 120 [default = true];
4629  if (cached_has_bits & 0x00040000u) {
4630  total_size += 2 + 1;
4631  }
4632 
4633  // optional bool add_zero_half_cuts = 169 [default = true];
4634  if (cached_has_bits & 0x00080000u) {
4635  total_size += 2 + 1;
4636  }
4637 
4638  // optional int64 pseudo_cost_reliability_threshold = 123 [default = 100];
4639  if (cached_has_bits & 0x00100000u) {
4640  total_size += 2 +
4641  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4642  this->_internal_pseudo_cost_reliability_threshold());
4643  }
4644 
4645  // optional int32 new_constraints_batch_size = 122 [default = 50];
4646  if (cached_has_bits & 0x00200000u) {
4647  total_size += 2 +
4648  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4649  this->_internal_new_constraints_batch_size());
4650  }
4651 
4652  // optional bool use_optional_variables = 108 [default = true];
4653  if (cached_has_bits & 0x00400000u) {
4654  total_size += 2 + 1;
4655  }
4656 
4657  // optional bool use_exact_lp_reason = 109 [default = true];
4658  if (cached_has_bits & 0x00800000u) {
4659  total_size += 2 + 1;
4660  }
4661 
4662  }
4663  if (cached_has_bits & 0xff000000u) {
4664  // optional bool catch_sigint_signal = 135 [default = true];
4665  if (cached_has_bits & 0x01000000u) {
4666  total_size += 2 + 1;
4667  }
4668 
4669  // optional bool use_implied_bounds = 144 [default = true];
4670  if (cached_has_bits & 0x02000000u) {
4671  total_size += 2 + 1;
4672  }
4673 
4674  // optional double mip_max_bound = 124 [default = 10000000];
4675  if (cached_has_bits & 0x04000000u) {
4676  total_size += 2 + 8;
4677  }
4678 
4679  // optional double mip_var_scaling = 125 [default = 1];
4680  if (cached_has_bits & 0x08000000u) {
4681  total_size += 2 + 8;
4682  }
4683 
4684  // optional double mip_wanted_precision = 126 [default = 1e-06];
4685  if (cached_has_bits & 0x10000000u) {
4686  total_size += 2 + 8;
4687  }
4688 
4689  // optional double mip_check_precision = 128 [default = 0.001];
4690  if (cached_has_bits & 0x20000000u) {
4691  total_size += 2 + 8;
4692  }
4693 
4694  // optional int32 mip_max_activity_exponent = 127 [default = 53];
4695  if (cached_has_bits & 0x40000000u) {
4696  total_size += 2 +
4697  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4698  this->_internal_mip_max_activity_exponent());
4699  }
4700 
4701  // optional bool share_objective_bounds = 113 [default = true];
4702  if (cached_has_bits & 0x80000000u) {
4703  total_size += 2 + 1;
4704  }
4705 
4706  }
4707  cached_has_bits = _has_bits_[4];
4708  if (cached_has_bits & 0x000000ffu) {
4709  // optional bool share_level_zero_bounds = 114 [default = true];
4710  if (cached_has_bits & 0x00000001u) {
4711  total_size += 2 + 1;
4712  }
4713 
4714  // optional bool use_rins_lns = 129 [default = true];
4715  if (cached_has_bits & 0x00000002u) {
4716  total_size += 2 + 1;
4717  }
4718 
4719  // optional bool use_feasibility_pump = 164 [default = true];
4720  if (cached_has_bits & 0x00000004u) {
4721  total_size += 2 + 1;
4722  }
4723 
4724  // optional bool add_clique_cuts = 172 [default = true];
4725  if (cached_has_bits & 0x00000008u) {
4726  total_size += 2 + 1;
4727  }
4728 
4729  // optional bool add_lin_max_cuts = 152 [default = true];
4730  if (cached_has_bits & 0x00000010u) {
4731  total_size += 2 + 1;
4732  }
4733 
4734  // optional bool add_lp_constraints_lazily = 112 [default = true];
4735  if (cached_has_bits & 0x00000020u) {
4736  total_size += 2 + 1;
4737  }
4738 
4739  // optional bool exploit_integer_lp_solution = 94 [default = true];
4740  if (cached_has_bits & 0x00000040u) {
4741  total_size += 2 + 1;
4742  }
4743 
4744  // optional int32 interleave_batch_size = 134 [default = 1];
4745  if (cached_has_bits & 0x00000080u) {
4746  total_size += 2 +
4747  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4748  this->_internal_interleave_batch_size());
4749  }
4750 
4751  }
4752  if (cached_has_bits & 0x0000ff00u) {
4753  // optional int32 max_presolve_iterations = 138 [default = 3];
4754  if (cached_has_bits & 0x00000100u) {
4755  total_size += 2 +
4756  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4757  this->_internal_max_presolve_iterations());
4758  }
4759 
4760  // optional int32 presolve_substitution_level = 147 [default = 1];
4761  if (cached_has_bits & 0x00000200u) {
4762  total_size += 2 +
4763  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4764  this->_internal_presolve_substitution_level());
4765  }
4766 
4767  // optional double merge_no_overlap_work_limit = 145 [default = 1000000000000];
4768  if (cached_has_bits & 0x00000400u) {
4769  total_size += 2 + 8;
4770  }
4771 
4772  // optional double merge_at_most_one_work_limit = 146 [default = 100000000];
4773  if (cached_has_bits & 0x00000800u) {
4774  total_size += 2 + 8;
4775  }
4776 
4777  // optional int32 max_all_diff_cut_size = 148 [default = 7];
4778  if (cached_has_bits & 0x00001000u) {
4779  total_size += 2 +
4780  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4781  this->_internal_max_all_diff_cut_size());
4782  }
4783 
4784  // optional int32 hint_conflict_limit = 153 [default = 10];
4785  if (cached_has_bits & 0x00002000u) {
4786  total_size += 2 +
4787  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4788  this->_internal_hint_conflict_limit());
4789  }
4790 
4791  // optional double cut_max_active_count_value = 155 [default = 10000000000];
4792  if (cached_has_bits & 0x00004000u) {
4793  total_size += 2 + 8;
4794  }
4795 
4796  // optional int32 max_cut_rounds_at_level_zero = 154 [default = 1];
4797  if (cached_has_bits & 0x00008000u) {
4798  total_size += 2 +
4799  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4800  this->_internal_max_cut_rounds_at_level_zero());
4801  }
4802 
4803  }
4804  if (cached_has_bits & 0x000f0000u) {
4805  // optional int32 cut_cleanup_target = 157 [default = 1000];
4806  if (cached_has_bits & 0x00010000u) {
4807  total_size += 2 +
4808  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4809  this->_internal_cut_cleanup_target());
4810  }
4811 
4812  // optional double cut_active_count_decay = 156 [default = 0.8];
4813  if (cached_has_bits & 0x00020000u) {
4814  total_size += 2 + 8;
4815  }
4816 
4817  // optional .operations_research.sat.SatParameters.FPRoundingMethod fp_rounding = 165 [default = PROPAGATION_ASSISTED];
4818  if (cached_has_bits & 0x00040000u) {
4819  total_size += 2 +
4820  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_fp_rounding());
4821  }
4822 
4823  // optional bool mip_automatically_scale_variables = 166 [default = true];
4824  if (cached_has_bits & 0x00080000u) {
4825  total_size += 2 + 1;
4826  }
4827 
4828  }
4829  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4830  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4831  _internal_metadata_, total_size, &_cached_size_);
4832  }
4833  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4834  SetCachedSize(cached_size);
4835  return total_size;
4836 }
4837 
4838 void SatParameters::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4839 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.SatParameters)
4840  GOOGLE_DCHECK_NE(&from, this);
4841  const SatParameters* source =
4842  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SatParameters>(
4843  &from);
4844  if (source == nullptr) {
4845  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.SatParameters)
4846  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4847  } else {
4848  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.SatParameters)
4849  MergeFrom(*source);
4850  }
4851 }
4852 
4853 void SatParameters::MergeFrom(const SatParameters& from) {
4854 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SatParameters)
4855  GOOGLE_DCHECK_NE(&from, this);
4856  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4857  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4858  (void) cached_has_bits;
4859 
4860  restart_algorithms_.MergeFrom(from.restart_algorithms_);
4861  cached_has_bits = from._has_bits_[0];
4862  if (cached_has_bits & 0x000000ffu) {
4863  if (cached_has_bits & 0x00000001u) {
4864  _internal_set_default_restart_algorithms(from._internal_default_restart_algorithms());
4865  }
4866  if (cached_has_bits & 0x00000002u) {
4867  _internal_set_name(from._internal_name());
4868  }
4869  if (cached_has_bits & 0x00000004u) {
4870  preferred_variable_order_ = from.preferred_variable_order_;
4871  }
4872  if (cached_has_bits & 0x00000008u) {
4873  max_sat_assumption_order_ = from.max_sat_assumption_order_;
4874  }
4875  if (cached_has_bits & 0x00000010u) {
4876  random_branches_ratio_ = from.random_branches_ratio_;
4877  }
4878  if (cached_has_bits & 0x00000020u) {
4879  random_polarity_ratio_ = from.random_polarity_ratio_;
4880  }
4881  if (cached_has_bits & 0x00000040u) {
4882  clause_cleanup_protection_ = from.clause_cleanup_protection_;
4883  }
4884  if (cached_has_bits & 0x00000080u) {
4885  clause_cleanup_ordering_ = from.clause_cleanup_ordering_;
4886  }
4887  _has_bits_[0] |= cached_has_bits;
4888  }
4889  if (cached_has_bits & 0x0000ff00u) {
4890  if (cached_has_bits & 0x00000100u) {
4891  use_erwa_heuristic_ = from.use_erwa_heuristic_;
4892  }
4893  if (cached_has_bits & 0x00000200u) {
4894  also_bump_variables_in_conflict_reasons_ = from.also_bump_variables_in_conflict_reasons_;
4895  }
4896  if (cached_has_bits & 0x00000400u) {
4897  use_blocking_restart_ = from.use_blocking_restart_;
4898  }
4899  if (cached_has_bits & 0x00000800u) {
4900  log_search_progress_ = from.log_search_progress_;
4901  }
4902  if (cached_has_bits & 0x00001000u) {
4903  num_conflicts_before_strategy_changes_ = from.num_conflicts_before_strategy_changes_;
4904  }
4905  if (cached_has_bits & 0x00002000u) {
4906  strategy_change_increase_ratio_ = from.strategy_change_increase_ratio_;
4907  }
4908  if (cached_has_bits & 0x00004000u) {
4909  initial_variables_activity_ = from.initial_variables_activity_;
4910  }
4911  if (cached_has_bits & 0x00008000u) {
4912  search_branching_ = from.search_branching_;
4913  }
4914  _has_bits_[0] |= cached_has_bits;
4915  }
4916  if (cached_has_bits & 0x00ff0000u) {
4917  if (cached_has_bits & 0x00010000u) {
4918  expand_alldiff_constraints_ = from.expand_alldiff_constraints_;
4919  }
4920  if (cached_has_bits & 0x00020000u) {
4921  max_sat_reverse_assumption_order_ = from.max_sat_reverse_assumption_order_;
4922  }
4923  if (cached_has_bits & 0x00040000u) {
4924  use_overload_checker_in_cumulative_constraint_ = from.use_overload_checker_in_cumulative_constraint_;
4925  }
4926  if (cached_has_bits & 0x00080000u) {
4927  use_timetable_edge_finding_in_cumulative_constraint_ = from.use_timetable_edge_finding_in_cumulative_constraint_;
4928  }
4929  if (cached_has_bits & 0x00100000u) {
4930  search_randomization_tolerance_ = from.search_randomization_tolerance_;
4931  }
4932  if (cached_has_bits & 0x00200000u) {
4933  use_pb_resolution_ = from.use_pb_resolution_;
4934  }
4935  if (cached_has_bits & 0x00400000u) {
4936  minimize_reduction_during_pb_resolution_ = from.minimize_reduction_during_pb_resolution_;
4937  }
4938  if (cached_has_bits & 0x00800000u) {
4939  cp_model_postsolve_with_full_solver_ = from.cp_model_postsolve_with_full_solver_;
4940  }
4941  _has_bits_[0] |= cached_has_bits;
4942  }
4943  if (cached_has_bits & 0xff000000u) {
4944  if (cached_has_bits & 0x01000000u) {
4945  use_sat_inprocessing_ = from.use_sat_inprocessing_;
4946  }
4947  if (cached_has_bits & 0x02000000u) {
4948  exploit_relaxation_solution_ = from.exploit_relaxation_solution_;
4949  }
4950  if (cached_has_bits & 0x04000000u) {
4951  optimize_with_core_ = from.optimize_with_core_;
4952  }
4953  if (cached_has_bits & 0x08000000u) {
4954  optimize_with_max_hs_ = from.optimize_with_max_hs_;
4955  }
4956  if (cached_has_bits & 0x10000000u) {
4957  enumerate_all_solutions_ = from.enumerate_all_solutions_;
4958  }
4959  if (cached_has_bits & 0x20000000u) {
4960  reduce_memory_usage_in_interleave_mode_ = from.reduce_memory_usage_in_interleave_mode_;
4961  }
4962  if (cached_has_bits & 0x40000000u) {
4963  use_lns_only_ = from.use_lns_only_;
4964  }
4965  if (cached_has_bits & 0x80000000u) {
4966  lns_focus_on_decision_variables_ = from.lns_focus_on_decision_variables_;
4967  }
4968  _has_bits_[0] |= cached_has_bits;
4969  }
4970  cached_has_bits = from._has_bits_[1];
4971  if (cached_has_bits & 0x000000ffu) {
4972  if (cached_has_bits & 0x00000001u) {
4973  use_relaxation_lns_ = from.use_relaxation_lns_;
4974  }
4975  if (cached_has_bits & 0x00000002u) {
4976  only_add_cuts_at_level_zero_ = from.only_add_cuts_at_level_zero_;
4977  }
4978  if (cached_has_bits & 0x00000004u) {
4979  add_knapsack_cuts_ = from.add_knapsack_cuts_;
4980  }
4981  if (cached_has_bits & 0x00000008u) {
4982  repair_hint_ = from.repair_hint_;
4983  }
4984  if (cached_has_bits & 0x00000010u) {
4985  exploit_best_solution_ = from.exploit_best_solution_;
4986  }
4987  if (cached_has_bits & 0x00000020u) {
4988  diversify_lns_params_ = from.diversify_lns_params_;
4989  }
4990  if (cached_has_bits & 0x00000040u) {
4991  randomize_search_ = from.randomize_search_;
4992  }
4993  if (cached_has_bits & 0x00000080u) {
4994  use_branching_in_lp_ = from.use_branching_in_lp_;
4995  }
4996  _has_bits_[1] |= cached_has_bits;
4997  }
4998  if (cached_has_bits & 0x0000ff00u) {
4999  if (cached_has_bits & 0x00000100u) {
5000  use_combined_no_overlap_ = from.use_combined_no_overlap_;
5001  }
5002  if (cached_has_bits & 0x00000200u) {
5003  fill_tightened_domains_in_response_ = from.fill_tightened_domains_in_response_;
5004  }
5005  if (cached_has_bits & 0x00000400u) {
5006  stop_after_first_solution_ = from.stop_after_first_solution_;
5007  }
5008  if (cached_has_bits & 0x00000800u) {
5009  stop_after_presolve_ = from.stop_after_presolve_;
5010  }
5011  if (cached_has_bits & 0x00001000u) {
5012  interleave_search_ = from.interleave_search_;
5013  }
5014  if (cached_has_bits & 0x00002000u) {
5015  probing_period_at_root_ = from.probing_period_at_root_;
5016  }
5017  if (cached_has_bits & 0x00004000u) {
5018  cp_model_max_num_presolve_operations_ = from.cp_model_max_num_presolve_operations_;
5019  }
5020  if (cached_has_bits & 0x00008000u) {
5021  absolute_gap_limit_ = from.absolute_gap_limit_;
5022  }
5023  _has_bits_[1] |= cached_has_bits;
5024  }
5025  if (cached_has_bits & 0x00ff0000u) {
5026  if (cached_has_bits & 0x00010000u) {
5027  relative_gap_limit_ = from.relative_gap_limit_;
5028  }
5029  if (cached_has_bits & 0x00020000u) {
5030  polarity_rephase_increment_ = from.polarity_rephase_increment_;
5031  }
5032  if (cached_has_bits & 0x00040000u) {
5033  initial_polarity_ = from.initial_polarity_;
5034  }
5035  if (cached_has_bits & 0x00080000u) {
5036  minimization_algorithm_ = from.minimization_algorithm_;
5037  }
5038  if (cached_has_bits & 0x00100000u) {
5039  clause_cleanup_period_ = from.clause_cleanup_period_;
5040  }
5041  if (cached_has_bits & 0x00200000u) {
5042  clause_cleanup_target_ = from.clause_cleanup_target_;
5043  }
5044  if (cached_has_bits & 0x00400000u) {
5045  variable_activity_decay_ = from.variable_activity_decay_;
5046  }
5047  if (cached_has_bits & 0x00800000u) {
5048  max_variable_activity_value_ = from.max_variable_activity_value_;
5049  }
5050  _has_bits_[1] |= cached_has_bits;
5051  }
5052  if (cached_has_bits & 0xff000000u) {
5053  if (cached_has_bits & 0x01000000u) {
5054  clause_activity_decay_ = from.clause_activity_decay_;
5055  }
5056  if (cached_has_bits & 0x02000000u) {
5057  max_clause_activity_value_ = from.max_clause_activity_value_;
5058  }
5059  if (cached_has_bits & 0x04000000u) {
5060  glucose_max_decay_ = from.glucose_max_decay_;
5061  }
5062  if (cached_has_bits & 0x08000000u) {
5063  glucose_decay_increment_ = from.glucose_decay_increment_;
5064  }
5065  if (cached_has_bits & 0x10000000u) {
5066  glucose_decay_increment_period_ = from.glucose_decay_increment_period_;
5067  }
5068  if (cached_has_bits & 0x20000000u) {
5069  restart_period_ = from.restart_period_;
5070  }
5071  if (cached_has_bits & 0x40000000u) {
5072  random_seed_ = from.random_seed_;
5073  }
5074  if (cached_has_bits & 0x80000000u) {
5075  binary_minimization_algorithm_ = from.binary_minimization_algorithm_;
5076  }
5077  _has_bits_[1] |= cached_has_bits;
5078  }
5079  cached_has_bits = from._has_bits_[2];
5080  if (cached_has_bits & 0x000000ffu) {
5081  if (cached_has_bits & 0x00000001u) {
5082  max_time_in_seconds_ = from.max_time_in_seconds_;
5083  }
5084  if (cached_has_bits & 0x00000002u) {
5085  max_number_of_conflicts_ = from.max_number_of_conflicts_;
5086  }
5087  if (cached_has_bits & 0x00000004u) {
5088  max_memory_in_mb_ = from.max_memory_in_mb_;
5089  }
5090  if (cached_has_bits & 0x00000008u) {
5091  use_phase_saving_ = from.use_phase_saving_;
5092  }
5093  if (cached_has_bits & 0x00000010u) {
5094  subsumption_during_conflict_analysis_ = from.subsumption_during_conflict_analysis_;
5095  }
5096  if (cached_has_bits & 0x00000020u) {
5097  treat_binary_clauses_separately_ = from.treat_binary_clauses_separately_;
5098  }
5099  if (cached_has_bits & 0x00000040u) {
5100  count_assumption_levels_in_lbd_ = from.count_assumption_levels_in_lbd_;
5101  }
5102  if (cached_has_bits & 0x00000080u) {
5103  pb_cleanup_increment_ = from.pb_cleanup_increment_;
5104  }
5105  _has_bits_[2] |= cached_has_bits;
5106  }
5107  if (cached_has_bits & 0x0000ff00u) {
5108  if (cached_has_bits & 0x00000100u) {
5109  pb_cleanup_ratio_ = from.pb_cleanup_ratio_;
5110  }
5111  if (cached_has_bits & 0x00000200u) {
5112  max_sat_stratification_ = from.max_sat_stratification_;
5113  }
5114  if (cached_has_bits & 0x00000400u) {
5115  presolve_bve_threshold_ = from.presolve_bve_threshold_;
5116  }
5117  if (cached_has_bits & 0x00000800u) {
5118  presolve_probing_deterministic_time_limit_ = from.presolve_probing_deterministic_time_limit_;
5119  }
5120  if (cached_has_bits & 0x00001000u) {
5121  presolve_bve_clause_weight_ = from.presolve_bve_clause_weight_;
5122  }
5123  if (cached_has_bits & 0x00002000u) {
5124  clause_cleanup_lbd_bound_ = from.clause_cleanup_lbd_bound_;
5125  }
5126  if (cached_has_bits & 0x00004000u) {
5127  restart_dl_average_ratio_ = from.restart_dl_average_ratio_;
5128  }
5129  if (cached_has_bits & 0x00008000u) {
5130  restart_running_window_size_ = from.restart_running_window_size_;
5131  }
5132  _has_bits_[2] |= cached_has_bits;
5133  }
5134  if (cached_has_bits & 0x00ff0000u) {
5135  if (cached_has_bits & 0x00010000u) {
5136  blocking_restart_window_size_ = from.blocking_restart_window_size_;
5137  }
5138  if (cached_has_bits & 0x00020000u) {
5139  blocking_restart_multiplier_ = from.blocking_restart_multiplier_;
5140  }
5141  if (cached_has_bits & 0x00040000u) {
5142  max_deterministic_time_ = from.max_deterministic_time_;
5143  }
5144  if (cached_has_bits & 0x00080000u) {
5145  restart_lbd_average_ratio_ = from.restart_lbd_average_ratio_;
5146  }
5147  if (cached_has_bits & 0x00100000u) {
5148  presolve_bva_threshold_ = from.presolve_bva_threshold_;
5149  }
5150  if (cached_has_bits & 0x00200000u) {
5151  minimize_core_ = from.minimize_core_;
5152  }
5153  if (cached_has_bits & 0x00400000u) {
5154  find_multiple_cores_ = from.find_multiple_cores_;
5155  }
5156  if (cached_has_bits & 0x00800000u) {
5157  cover_optimization_ = from.cover_optimization_;
5158  }
5159  _has_bits_[2] |= cached_has_bits;
5160  }
5161  if (cached_has_bits & 0xff000000u) {
5162  if (cached_has_bits & 0x01000000u) {
5163  use_precedences_in_disjunctive_constraint_ = from.use_precedences_in_disjunctive_constraint_;
5164  }
5165  if (cached_has_bits & 0x02000000u) {
5166  presolve_blocked_clause_ = from.presolve_blocked_clause_;
5167  }
5168  if (cached_has_bits & 0x04000000u) {
5169  presolve_use_bva_ = from.presolve_use_bva_;
5170  }
5171  if (cached_has_bits & 0x08000000u) {
5172  cp_model_presolve_ = from.cp_model_presolve_;
5173  }
5174  if (cached_has_bits & 0x10000000u) {
5175  cp_model_use_sat_presolve_ = from.cp_model_use_sat_presolve_;
5176  }
5177  if (cached_has_bits & 0x20000000u) {
5178  linearization_level_ = from.linearization_level_;
5179  }
5180  if (cached_has_bits & 0x40000000u) {
5181  max_num_cuts_ = from.max_num_cuts_;
5182  }
5183  if (cached_has_bits & 0x80000000u) {
5184  minimize_with_propagation_restart_period_ = from.minimize_with_propagation_restart_period_;
5185  }
5186  _has_bits_[2] |= cached_has_bits;
5187  }
5188  cached_has_bits = from._has_bits_[3];
5189  if (cached_has_bits & 0x000000ffu) {
5190  if (cached_has_bits & 0x00000001u) {
5191  minimize_with_propagation_num_decisions_ = from.minimize_with_propagation_num_decisions_;
5192  }
5193  if (cached_has_bits & 0x00000002u) {
5194  binary_search_num_conflicts_ = from.binary_search_num_conflicts_;
5195  }
5196  if (cached_has_bits & 0x00000004u) {
5197  num_search_workers_ = from.num_search_workers_;
5198  }
5199  if (cached_has_bits & 0x00000008u) {
5200  boolean_encoding_level_ = from.boolean_encoding_level_;
5201  }
5202  if (cached_has_bits & 0x00000010u) {
5203  cp_model_probing_level_ = from.cp_model_probing_level_;
5204  }
5205  if (cached_has_bits & 0x00000020u) {
5206  exploit_all_lp_solution_ = from.exploit_all_lp_solution_;
5207  }
5208  if (cached_has_bits & 0x00000040u) {
5209  exploit_objective_ = from.exploit_objective_;
5210  }
5211  if (cached_has_bits & 0x00000080u) {
5212  instantiate_all_variables_ = from.instantiate_all_variables_;
5213  }
5214  _has_bits_[3] |= cached_has_bits;
5215  }
5216  if (cached_has_bits & 0x0000ff00u) {
5217  if (cached_has_bits & 0x00000100u) {
5218  auto_detect_greater_than_at_least_one_of_ = from.auto_detect_greater_than_at_least_one_of_;
5219  }
5220  if (cached_has_bits & 0x00000200u) {
5221  min_orthogonality_for_lp_constraints_ = from.min_orthogonality_for_lp_constraints_;
5222  }
5223  if (cached_has_bits & 0x00000400u) {
5224  max_integer_rounding_scaling_ = from.max_integer_rounding_scaling_;
5225  }
5226  if (cached_has_bits & 0x00000800u) {
5227  expand_element_constraints_ = from.expand_element_constraints_;
5228  }
5229  if (cached_has_bits & 0x00001000u) {
5230  expand_automaton_constraints_ = from.expand_automaton_constraints_;
5231  }
5232  if (cached_has_bits & 0x00002000u) {
5233  expand_table_constraints_ = from.expand_table_constraints_;
5234  }
5235  if (cached_has_bits & 0x00004000u) {
5236  use_optimization_hints_ = from.use_optimization_hints_;
5237  }
5238  if (cached_has_bits & 0x00008000u) {
5239  max_consecutive_inactive_count_ = from.max_consecutive_inactive_count_;
5240  }
5241  _has_bits_[3] |= cached_has_bits;
5242  }
5243  if (cached_has_bits & 0x00ff0000u) {
5244  if (cached_has_bits & 0x00010000u) {
5245  use_disjunctive_constraint_in_cumulative_constraint_ = from.use_disjunctive_constraint_in_cumulative_constraint_;
5246  }
5247  if (cached_has_bits & 0x00020000u) {
5248  add_cg_cuts_ = from.add_cg_cuts_;
5249  }
5250  if (cached_has_bits & 0x00040000u) {
5251  add_mir_cuts_ = from.add_mir_cuts_;
5252  }
5253  if (cached_has_bits & 0x00080000u) {
5254  add_zero_half_cuts_ = from.add_zero_half_cuts_;
5255  }
5256  if (cached_has_bits & 0x00100000u) {
5257  pseudo_cost_reliability_threshold_ = from.pseudo_cost_reliability_threshold_;
5258  }
5259  if (cached_has_bits & 0x00200000u) {
5260  new_constraints_batch_size_ = from.new_constraints_batch_size_;
5261  }
5262  if (cached_has_bits & 0x00400000u) {
5263  use_optional_variables_ = from.use_optional_variables_;
5264  }
5265  if (cached_has_bits & 0x00800000u) {
5266  use_exact_lp_reason_ = from.use_exact_lp_reason_;
5267  }
5268  _has_bits_[3] |= cached_has_bits;
5269  }
5270  if (cached_has_bits & 0xff000000u) {
5271  if (cached_has_bits & 0x01000000u) {
5272  catch_sigint_signal_ = from.catch_sigint_signal_;
5273  }
5274  if (cached_has_bits & 0x02000000u) {
5275  use_implied_bounds_ = from.use_implied_bounds_;
5276  }
5277  if (cached_has_bits & 0x04000000u) {
5278  mip_max_bound_ = from.mip_max_bound_;
5279  }
5280  if (cached_has_bits & 0x08000000u) {
5281  mip_var_scaling_ = from.mip_var_scaling_;
5282  }
5283  if (cached_has_bits & 0x10000000u) {
5284  mip_wanted_precision_ = from.mip_wanted_precision_;
5285  }
5286  if (cached_has_bits & 0x20000000u) {
5287  mip_check_precision_ = from.mip_check_precision_;
5288  }
5289  if (cached_has_bits & 0x40000000u) {
5290  mip_max_activity_exponent_ = from.mip_max_activity_exponent_;
5291  }
5292  if (cached_has_bits & 0x80000000u) {
5293  share_objective_bounds_ = from.share_objective_bounds_;
5294  }
5295  _has_bits_[3] |= cached_has_bits;
5296  }
5297  cached_has_bits = from._has_bits_[4];
5298  if (cached_has_bits & 0x000000ffu) {
5299  if (cached_has_bits & 0x00000001u) {
5300  share_level_zero_bounds_ = from.share_level_zero_bounds_;
5301  }
5302  if (cached_has_bits & 0x00000002u) {
5303  use_rins_lns_ = from.use_rins_lns_;
5304  }
5305  if (cached_has_bits & 0x00000004u) {
5306  use_feasibility_pump_ = from.use_feasibility_pump_;
5307  }
5308  if (cached_has_bits & 0x00000008u) {
5309  add_clique_cuts_ = from.add_clique_cuts_;
5310  }
5311  if (cached_has_bits & 0x00000010u) {
5312  add_lin_max_cuts_ = from.add_lin_max_cuts_;
5313  }
5314  if (cached_has_bits & 0x00000020u) {
5315  add_lp_constraints_lazily_ = from.add_lp_constraints_lazily_;
5316  }
5317  if (cached_has_bits & 0x00000040u) {
5318  exploit_integer_lp_solution_ = from.exploit_integer_lp_solution_;
5319  }
5320  if (cached_has_bits & 0x00000080u) {
5321  interleave_batch_size_ = from.interleave_batch_size_;
5322  }
5323  _has_bits_[4] |= cached_has_bits;
5324  }
5325  if (cached_has_bits & 0x0000ff00u) {
5326  if (cached_has_bits & 0x00000100u) {
5327  max_presolve_iterations_ = from.max_presolve_iterations_;
5328  }
5329  if (cached_has_bits & 0x00000200u) {
5330  presolve_substitution_level_ = from.presolve_substitution_level_;
5331  }
5332  if (cached_has_bits & 0x00000400u) {
5333  merge_no_overlap_work_limit_ = from.merge_no_overlap_work_limit_;
5334  }
5335  if (cached_has_bits & 0x00000800u) {
5336  merge_at_most_one_work_limit_ = from.merge_at_most_one_work_limit_;
5337  }
5338  if (cached_has_bits & 0x00001000u) {
5339  max_all_diff_cut_size_ = from.max_all_diff_cut_size_;
5340  }
5341  if (cached_has_bits & 0x00002000u) {
5342  hint_conflict_limit_ = from.hint_conflict_limit_;
5343  }
5344  if (cached_has_bits & 0x00004000u) {
5345  cut_max_active_count_value_ = from.cut_max_active_count_value_;
5346  }
5347  if (cached_has_bits & 0x00008000u) {
5348  max_cut_rounds_at_level_zero_ = from.max_cut_rounds_at_level_zero_;
5349  }
5350  _has_bits_[4] |= cached_has_bits;
5351  }
5352  if (cached_has_bits & 0x000f0000u) {
5353  if (cached_has_bits & 0x00010000u) {
5354  cut_cleanup_target_ = from.cut_cleanup_target_;
5355  }
5356  if (cached_has_bits & 0x00020000u) {
5357  cut_active_count_decay_ = from.cut_active_count_decay_;
5358  }
5359  if (cached_has_bits & 0x00040000u) {
5360  fp_rounding_ = from.fp_rounding_;
5361  }
5362  if (cached_has_bits & 0x00080000u) {
5363  mip_automatically_scale_variables_ = from.mip_automatically_scale_variables_;
5364  }
5365  _has_bits_[4] |= cached_has_bits;
5366  }
5367 }
5368 
5369 void SatParameters::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5370 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.SatParameters)
5371  if (&from == this) return;
5372  Clear();
5373  MergeFrom(from);
5374 }
5375 
5376 void SatParameters::CopyFrom(const SatParameters& from) {
5377 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SatParameters)
5378  if (&from == this) return;
5379  Clear();
5380  MergeFrom(from);
5381 }
5382 
5383 bool SatParameters::IsInitialized() const {
5384  return true;
5385 }
5386 
5387 void SatParameters::InternalSwap(SatParameters* other) {
5388  using std::swap;
5389  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5390  swap(_has_bits_[0], other->_has_bits_[0]);
5391  swap(_has_bits_[1], other->_has_bits_[1]);
5392  swap(_has_bits_[2], other->_has_bits_[2]);
5393  swap(_has_bits_[3], other->_has_bits_[3]);
5394  swap(_has_bits_[4], other->_has_bits_[4]);
5395  restart_algorithms_.InternalSwap(&other->restart_algorithms_);
5396  default_restart_algorithms_.Swap(&other->default_restart_algorithms_, &::operations_research::sat::SatParameters::_i_give_permission_to_break_this_code_default_default_restart_algorithms_.get(), GetArena());
5397  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
5398  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
5399  PROTOBUF_FIELD_OFFSET(SatParameters, relative_gap_limit_)
5400  + sizeof(SatParameters::relative_gap_limit_)
5401  - PROTOBUF_FIELD_OFFSET(SatParameters, preferred_variable_order_)>(
5402  reinterpret_cast<char*>(&preferred_variable_order_),
5403  reinterpret_cast<char*>(&other->preferred_variable_order_));
5404  swap(polarity_rephase_increment_, other->polarity_rephase_increment_);
5405  swap(initial_polarity_, other->initial_polarity_);
5406  swap(minimization_algorithm_, other->minimization_algorithm_);
5407  swap(clause_cleanup_period_, other->clause_cleanup_period_);
5408  swap(clause_cleanup_target_, other->clause_cleanup_target_);
5409  swap(variable_activity_decay_, other->variable_activity_decay_);
5410  swap(max_variable_activity_value_, other->max_variable_activity_value_);
5411  swap(clause_activity_decay_, other->clause_activity_decay_);
5412  swap(max_clause_activity_value_, other->max_clause_activity_value_);
5413  swap(glucose_max_decay_, other->glucose_max_decay_);
5414  swap(glucose_decay_increment_, other->glucose_decay_increment_);
5415  swap(glucose_decay_increment_period_, other->glucose_decay_increment_period_);
5416  swap(restart_period_, other->restart_period_);
5417  swap(random_seed_, other->random_seed_);
5418  swap(binary_minimization_algorithm_, other->binary_minimization_algorithm_);
5419  swap(max_time_in_seconds_, other->max_time_in_seconds_);
5420  swap(max_number_of_conflicts_, other->max_number_of_conflicts_);
5421  swap(max_memory_in_mb_, other->max_memory_in_mb_);
5422  swap(use_phase_saving_, other->use_phase_saving_);
5423  swap(subsumption_during_conflict_analysis_, other->subsumption_during_conflict_analysis_);
5424  swap(treat_binary_clauses_separately_, other->treat_binary_clauses_separately_);
5425  swap(count_assumption_levels_in_lbd_, other->count_assumption_levels_in_lbd_);
5426  swap(pb_cleanup_increment_, other->pb_cleanup_increment_);
5427  swap(pb_cleanup_ratio_, other->pb_cleanup_ratio_);
5428  swap(max_sat_stratification_, other->max_sat_stratification_);
5429  swap(presolve_bve_threshold_, other->presolve_bve_threshold_);
5430  swap(presolve_probing_deterministic_time_limit_, other->presolve_probing_deterministic_time_limit_);
5431  swap(presolve_bve_clause_weight_, other->presolve_bve_clause_weight_);
5432  swap(clause_cleanup_lbd_bound_, other->clause_cleanup_lbd_bound_);
5433  swap(restart_dl_average_ratio_, other->restart_dl_average_ratio_);
5434  swap(restart_running_window_size_, other->restart_running_window_size_);
5435  swap(blocking_restart_window_size_, other->blocking_restart_window_size_);
5436  swap(blocking_restart_multiplier_, other->blocking_restart_multiplier_);
5437  swap(max_deterministic_time_, other->max_deterministic_time_);
5438  swap(restart_lbd_average_ratio_, other->restart_lbd_average_ratio_);
5439  swap(presolve_bva_threshold_, other->presolve_bva_threshold_);
5440  swap(minimize_core_, other->minimize_core_);
5441  swap(find_multiple_cores_, other->find_multiple_cores_);
5442  swap(cover_optimization_, other->cover_optimization_);
5443  swap(use_precedences_in_disjunctive_constraint_, other->use_precedences_in_disjunctive_constraint_);
5444  swap(presolve_blocked_clause_, other->presolve_blocked_clause_);
5445  swap(presolve_use_bva_, other->presolve_use_bva_);
5446  swap(cp_model_presolve_, other->cp_model_presolve_);
5447  swap(cp_model_use_sat_presolve_, other->cp_model_use_sat_presolve_);
5448  swap(linearization_level_, other->linearization_level_);
5449  swap(max_num_cuts_, other->max_num_cuts_);
5450  swap(minimize_with_propagation_restart_period_, other->minimize_with_propagation_restart_period_);
5451  swap(minimize_with_propagation_num_decisions_, other->minimize_with_propagation_num_decisions_);
5452  swap(binary_search_num_conflicts_, other->binary_search_num_conflicts_);
5453  swap(num_search_workers_, other->num_search_workers_);
5454  swap(boolean_encoding_level_, other->boolean_encoding_level_);
5455  swap(cp_model_probing_level_, other->cp_model_probing_level_);
5456  swap(exploit_all_lp_solution_, other->exploit_all_lp_solution_);
5457  swap(exploit_objective_, other->exploit_objective_);
5458  swap(instantiate_all_variables_, other->instantiate_all_variables_);
5459  swap(auto_detect_greater_than_at_least_one_of_, other->auto_detect_greater_than_at_least_one_of_);
5460  swap(min_orthogonality_for_lp_constraints_, other->min_orthogonality_for_lp_constraints_);
5461  swap(max_integer_rounding_scaling_, other->max_integer_rounding_scaling_);
5462  swap(expand_element_constraints_, other->expand_element_constraints_);
5463  swap(expand_automaton_constraints_, other->expand_automaton_constraints_);
5464  swap(expand_table_constraints_, other->expand_table_constraints_);
5465  swap(use_optimization_hints_, other->use_optimization_hints_);
5466  swap(max_consecutive_inactive_count_, other->max_consecutive_inactive_count_);
5467  swap(use_disjunctive_constraint_in_cumulative_constraint_, other->use_disjunctive_constraint_in_cumulative_constraint_);
5468  swap(add_cg_cuts_, other->add_cg_cuts_);
5469  swap(add_mir_cuts_, other->add_mir_cuts_);
5470  swap(add_zero_half_cuts_, other->add_zero_half_cuts_);
5471  swap(pseudo_cost_reliability_threshold_, other->pseudo_cost_reliability_threshold_);
5472  swap(new_constraints_batch_size_, other->new_constraints_batch_size_);
5473  swap(use_optional_variables_, other->use_optional_variables_);
5474  swap(use_exact_lp_reason_, other->use_exact_lp_reason_);
5475  swap(catch_sigint_signal_, other->catch_sigint_signal_);
5476  swap(use_implied_bounds_, other->use_implied_bounds_);
5477  swap(mip_max_bound_, other->mip_max_bound_);
5478  swap(mip_var_scaling_, other->mip_var_scaling_);
5479  swap(mip_wanted_precision_, other->mip_wanted_precision_);
5480  swap(mip_check_precision_, other->mip_check_precision_);
5481  swap(mip_max_activity_exponent_, other->mip_max_activity_exponent_);
5482  swap(share_objective_bounds_, other->share_objective_bounds_);
5483  swap(share_level_zero_bounds_, other->share_level_zero_bounds_);
5484  swap(use_rins_lns_, other->use_rins_lns_);
5485  swap(use_feasibility_pump_, other->use_feasibility_pump_);
5486  swap(add_clique_cuts_, other->add_clique_cuts_);
5487  swap(add_lin_max_cuts_, other->add_lin_max_cuts_);
5488  swap(add_lp_constraints_lazily_, other->add_lp_constraints_lazily_);
5489  swap(exploit_integer_lp_solution_, other->exploit_integer_lp_solution_);
5490  swap(interleave_batch_size_, other->interleave_batch_size_);
5491  swap(max_presolve_iterations_, other->max_presolve_iterations_);
5492  swap(presolve_substitution_level_, other->presolve_substitution_level_);
5493  swap(merge_no_overlap_work_limit_, other->merge_no_overlap_work_limit_);
5494  swap(merge_at_most_one_work_limit_, other->merge_at_most_one_work_limit_);
5495  swap(max_all_diff_cut_size_, other->max_all_diff_cut_size_);
5496  swap(hint_conflict_limit_, other->hint_conflict_limit_);
5497  swap(cut_max_active_count_value_, other->cut_max_active_count_value_);
5498  swap(max_cut_rounds_at_level_zero_, other->max_cut_rounds_at_level_zero_);
5499  swap(cut_cleanup_target_, other->cut_cleanup_target_);
5500  swap(cut_active_count_decay_, other->cut_active_count_decay_);
5501  swap(fp_rounding_, other->fp_rounding_);
5502  swap(mip_automatically_scale_variables_, other->mip_automatically_scale_variables_);
5503 }
5504 
5505 ::PROTOBUF_NAMESPACE_ID::Metadata SatParameters::GetMetadata() const {
5506  return GetMetadataStatic();
5507 }
5508 
5509 
5510 // @@protoc_insertion_point(namespace_scope)
5511 } // namespace sat
5512 } // namespace operations_research
5513 PROTOBUF_NAMESPACE_OPEN
5514 template<> PROTOBUF_NOINLINE ::operations_research::sat::SatParameters* Arena::CreateMaybeMessage< ::operations_research::sat::SatParameters >(Arena* arena) {
5515  return Arena::CreateMessageInternal< ::operations_research::sat::SatParameters >(arena);
5516 }
5517 PROTOBUF_NAMESPACE_CLOSE
5518 
5519 // @@protoc_insertion_point(global_scope)
5520 #include <google/protobuf/port_undef.inc>
operations_research::sat::SatParameters::_Internal::set_has_blocking_restart_window_size
static void set_has_blocking_restart_window_size(HasBits *has_bits)
Definition: sat_parameters.pb.cc:972
operations_research::sat::SatParameters::_Internal::set_has_expand_table_constraints
static void set_has_expand_table_constraints(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1065
operations_research::sat::SatParameters::_Internal::HasBits
decltype(std::declval< SatParameters >()._has_bits_) HasBits
Definition: sat_parameters.pb.cc:866
operations_research::sat::SatParameters::_Internal::set_has_optimize_with_max_hs
static void set_has_optimize_with_max_hs(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1209
operations_research::sat::SatParameters::_Internal::set_has_stop_after_first_solution
static void set_has_stop_after_first_solution(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1224
operations_research::sat::SatParameters::_Internal::set_has_cp_model_presolve
static void set_has_cp_model_presolve(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1041
operations_research::sat::SatParameters::_Internal::set_has_exploit_integer_lp_solution
static void set_has_exploit_integer_lp_solution(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1182
operations_research::sat::SatParameters_ClauseProtection
SatParameters_ClauseProtection
Definition: sat_parameters.pb.h:172
operations_research::sat::SatParameters::_Internal::set_has_find_multiple_cores
static void set_has_find_multiple_cores(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1086
operations_research::sat::SatParameters::_Internal::set_has_pb_cleanup_ratio
static void set_has_pb_cleanup_ratio(HasBits *has_bits)
Definition: sat_parameters.pb.cc:924
operations_research::sat::SatParameters::_Internal::set_has_max_presolve_iterations
static void set_has_max_presolve_iterations(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1038
InitDefaultsscc_info_SatParameters_ortools_2fsat_2fsat_5fparameters_2eproto
static void InitDefaultsscc_info_SatParameters_ortools_2fsat_2fsat_5fparameters_2eproto()
Definition: sat_parameters.pb.cc:25
operations_research::sat::SatParameters_ClauseProtection_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_ClauseProtection_descriptor()
Definition: sat_parameters.pb.cc:686
operations_research::sat::SatParameters::_Internal::set_has_exploit_best_solution
static void set_has_exploit_best_solution(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1188
operations_research::sat::SatParameters::_Internal::set_has_binary_minimization_algorithm
static void set_has_binary_minimization_algorithm(HasBits *has_bits)
Definition: sat_parameters.pb.cc:900
operations_research::sat::SatParameters::_Internal::set_has_use_timetable_edge_finding_in_cumulative_constraint
static void set_has_use_timetable_edge_finding_in_cumulative_constraint(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1107
operations_research::sat::SatParameters::_Internal::set_has_cut_cleanup_target
static void set_has_cut_cleanup_target(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1167
operations_research::sat::SatParameters::_Internal::set_has_max_clause_activity_value
static void set_has_max_clause_activity_value(HasBits *has_bits)
Definition: sat_parameters.pb.cc:951
operations_research::sat::SatParameters::_Internal::set_has_use_disjunctive_constraint_in_cumulative_constraint
static void set_has_use_disjunctive_constraint_in_cumulative_constraint(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1110
operations_research::sat::SatParameters_MaxSatStratificationAlgorithm_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_MaxSatStratificationAlgorithm_descriptor()
Definition: sat_parameters.pb.cc:780
operations_research::sat::SatParameters_ClauseOrdering
SatParameters_ClauseOrdering
Definition: sat_parameters.pb.h:196
operations_research::sat::SatParameters::_Internal::set_has_cut_max_active_count_value
static void set_has_cut_max_active_count_value(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1161
operations_research::sat::SatParameters::_Internal::set_has_glucose_decay_increment_period
static void set_has_glucose_decay_increment_period(HasBits *has_bits)
Definition: sat_parameters.pb.cc:945
operations_research::sat::SatParameters_RestartAlgorithm_IsValid
bool SatParameters_RestartAlgorithm_IsValid(int value)
Definition: sat_parameters.pb.cc:734
operations_research::sat::SatParameters::_Internal::set_has_only_add_cuts_at_level_zero
static void set_has_only_add_cuts_at_level_zero(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1122
operations_research::sat::SatParameters::_Internal::set_has_add_lp_constraints_lazily
static void set_has_add_lp_constraints_lazily(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1149
descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto
Definition: sat_parameters.pb.cc:573
operations_research::sat::SatParameters::_Internal::set_has_exploit_objective
static void set_has_exploit_objective(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1194
operations_research::sat::SatParameters::_Internal::set_has_new_constraints_batch_size
static void set_has_new_constraints_batch_size(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1170
operations_research::sat::SatParameters_VariableOrder
SatParameters_VariableOrder
Definition: sat_parameters.pb.h:71
operations_research::sat::SatParameters::_Internal::set_has_num_conflicts_before_strategy_changes
static void set_has_num_conflicts_before_strategy_changes(HasBits *has_bits)
Definition: sat_parameters.pb.cc:978
value
int64 value
Definition: demon_profiler.cc:43
operations_research::sat::SatParameters::_Internal::set_has_variable_activity_decay
static void set_has_variable_activity_decay(HasBits *has_bits)
Definition: sat_parameters.pb.cc:933
operations_research::sat::SatParameters::_Internal::set_has_randomize_search
static void set_has_randomize_search(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1269
operations_research::sat::SatParameters::_Internal::set_has_cp_model_max_num_presolve_operations
static void set_has_cp_model_max_num_presolve_operations(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1047
operations_research::sat::SatParameters::_Internal::set_has_minimize_core
static void set_has_minimize_core(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1083
operations_research::sat::SatParameters::_Internal::set_has_presolve_substitution_level
static void set_has_presolve_substitution_level(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1077
operations_research::sat::SatParameters::_Internal::set_has_initial_variables_activity
static void set_has_initial_variables_activity(HasBits *has_bits)
Definition: sat_parameters.pb.cc:891
operations_research::sat::SatParameters::_Internal::set_has_max_sat_stratification
static void set_has_max_sat_stratification(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1098
operations_research::sat::SatParameters_Polarity
SatParameters_Polarity
Definition: sat_parameters.pb.h:95
operations_research::sat::SatParameters::_Internal::set_has_use_precedences_in_disjunctive_constraint
static void set_has_use_precedences_in_disjunctive_constraint(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1101
operations_research::sat::SatParameters_BinaryMinizationAlgorithm_IsValid
bool SatParameters_BinaryMinizationAlgorithm_IsValid(int value)
Definition: sat_parameters.pb.cc:663
operations_research::sat::SatParameters::_Internal::set_has_presolve_blocked_clause
static void set_has_presolve_blocked_clause(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1029
operations_research::sat::SatParameters::_Internal::set_has_use_branching_in_lp
static void set_has_use_branching_in_lp(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1281
operations_research::sat::SatParameters::_Internal::set_has_use_sat_inprocessing
static void set_has_use_sat_inprocessing(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1056
file_default_instances
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: sat_parameters.pb.cc:356
operations_research
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
Definition: dense_doubly_linked_list.h:21
operations_research::sat::SatParameters_BinaryMinizationAlgorithm
SatParameters_BinaryMinizationAlgorithm
Definition: sat_parameters.pb.h:146
operations_research::sat::SatParameters::_Internal::set_has_use_feasibility_pump
static void set_has_use_feasibility_pump(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1257
operations_research::sat::SatParameters::_Internal::set_has_probing_period_at_root
static void set_has_probing_period_at_root(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1197
operations_research::sat::SatParameters::_Internal::set_has_pseudo_cost_reliability_threshold
static void set_has_pseudo_cost_reliability_threshold(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1200
operations_research::sat::SatParameters::_Internal::set_has_presolve_probing_deterministic_time_limit
static void set_has_presolve_probing_deterministic_time_limit(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1026
operations_research::sat::SatParameters::_Internal::set_has_instantiate_all_variables
static void set_has_instantiate_all_variables(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1218
operations_research::sat::SatParameters_SearchBranching_IsValid
bool SatParameters_SearchBranching_IsValid(int value)
Definition: sat_parameters.pb.cc:807
operations_research::sat::SatParameters::_Internal::set_has_presolve_bve_threshold
static void set_has_presolve_bve_threshold(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1020
operations_research::sat::_SatParameters_default_instance_
class operations_research::sat::SatParametersDefaultTypeInternal _SatParameters_default_instance_
Definition: sat_parameters.pb.h:61
operations_research::sat::SatParameters_ConflictMinimizationAlgorithm_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_ConflictMinimizationAlgorithm_descriptor()
Definition: sat_parameters.pb.cc:634
operations_research::sat::SatParameters::_Internal::set_has_glucose_max_decay
static void set_has_glucose_max_decay(HasBits *has_bits)
Definition: sat_parameters.pb.cc:939
operations_research::sat::SatParameters::_Internal
Definition: sat_parameters.pb.cc:864
operations_research::sat::SatParameters::_Internal::set_has_mip_max_bound
static void set_has_mip_max_bound(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1293
operations_research::sat::SatParameters::_Internal::set_has_max_memory_in_mb
static void set_has_max_memory_in_mb(HasBits *has_bits)
Definition: sat_parameters.pb.cc:993
schemas
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
Definition: optional_boolean.pb.cc:23
operations_research::sat::SatParameters_FPRoundingMethod_IsValid
bool SatParameters_FPRoundingMethod_IsValid(int value)
Definition: sat_parameters.pb.cc:838
operations_research::sat::SatParameters::_Internal::set_has_mip_check_precision
static void set_has_mip_check_precision(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1308
operations_research::sat::SatParameters::_Internal::set_has_use_pb_resolution
static void set_has_use_pb_resolution(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1011
operations_research::sat::SatParameters::_Internal::set_has_search_branching
static void set_has_search_branching(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1173
operations_research::sat::SatParameters::_Internal::set_has_reduce_memory_usage_in_interleave_mode
static void set_has_reduce_memory_usage_in_interleave_mode(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1239
operations_research::sat::SatParameters_FPRoundingMethod_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_FPRoundingMethod_descriptor()
Definition: sat_parameters.pb.cc:834
operations_research::sat::SatParameters::_Internal::set_has_preferred_variable_order
static void set_has_preferred_variable_order(HasBits *has_bits)
Definition: sat_parameters.pb.cc:870
scc_info_SatParameters_ortools_2fsat_2fsat_5fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_SatParameters_ortools_2fsat_2fsat_5fparameters_2eproto
Definition: sat_parameters.pb.cc:40
operations_research::sat::SatParameters_FPRoundingMethod
SatParameters_FPRoundingMethod
Definition: sat_parameters.pb.h:321
operations_research::sat::SatParameters::_Internal::set_has_use_relaxation_lns
static void set_has_use_relaxation_lns(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1263
operations_research::sat::SatParameters::_Internal::set_has_auto_detect_greater_than_at_least_one_of
static void set_has_auto_detect_greater_than_at_least_one_of(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1221
operations_research::sat::SatParameters::_Internal::set_has_stop_after_presolve
static void set_has_stop_after_presolve(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1227
operations_research::sat::SatParameters_ConflictMinimizationAlgorithm
SatParameters_ConflictMinimizationAlgorithm
Definition: sat_parameters.pb.h:121
operations_research::sat::SatParameters::_Internal::set_has_mip_automatically_scale_variables
static void set_has_mip_automatically_scale_variables(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1299
operations_research::sat::SatParameters::_Internal::set_has_default_restart_algorithms
static void set_has_default_restart_algorithms(HasBits *has_bits)
Definition: sat_parameters.pb.cc:954
operations_research::sat::SatParameters::_Internal::set_has_presolve_bva_threshold
static void set_has_presolve_bva_threshold(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1035
operations_research::sat::SatParameters::_Internal::set_has_add_lin_max_cuts
static void set_has_add_lin_max_cuts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1143
operations_research::sat::SatParameters::_Internal::set_has_pb_cleanup_increment
static void set_has_pb_cleanup_increment(HasBits *has_bits)
Definition: sat_parameters.pb.cc:921
operations_research::sat::SatParameters::_Internal::set_has_presolve_use_bva
static void set_has_presolve_use_bva(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1032
operations_research::sat::SatParameters::_Internal::set_has_glucose_decay_increment
static void set_has_glucose_decay_increment(HasBits *has_bits)
Definition: sat_parameters.pb.cc:942
operations_research::sat::SatParameters::_Internal::set_has_log_search_progress
static void set_has_log_search_progress(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1008
operations_research::sat::SatParameters::_Internal::set_has_hint_conflict_limit
static void set_has_hint_conflict_limit(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1176
operations_research::sat::SatParameters::_Internal::set_has_add_zero_half_cuts
static void set_has_add_zero_half_cuts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1134
file_level_service_descriptors_ortools_2fsat_2fsat_5fparameters_2eproto
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fsat_2fsat_5fparameters_2eproto
Definition: sat_parameters.pb.cc:45
operations_research::sat::SatParameters::_Internal::set_has_exploit_relaxation_solution
static void set_has_exploit_relaxation_solution(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1191
operations_research::sat::SatParameters::_Internal::set_has_boolean_encoding_level
static void set_has_boolean_encoding_level(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1116
sat_parameters.pb.h
operations_research::sat::SatParameters_RestartAlgorithm_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_RestartAlgorithm_descriptor()
Definition: sat_parameters.pb.cc:730
operations_research::sat::SatParameters::_Internal::set_has_expand_element_constraints
static void set_has_expand_element_constraints(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1059
operations_research::sat::SatParameters::_Internal::set_has_restart_lbd_average_ratio
static void set_has_restart_lbd_average_ratio(HasBits *has_bits)
Definition: sat_parameters.pb.cc:966
uint32
unsigned int uint32
Definition: integral_types.h:38
operations_research::sat::SatParameters::_Internal::set_has_share_objective_bounds
static void set_has_share_objective_bounds(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1242
operations_research::sat::SatParameters_MaxSatStratificationAlgorithm_IsValid
bool SatParameters_MaxSatStratificationAlgorithm_IsValid(int value)
Definition: sat_parameters.pb.cc:784
operations_research::sat::SatParameters::_Internal::set_has_clause_cleanup_period
static void set_has_clause_cleanup_period(HasBits *has_bits)
Definition: sat_parameters.pb.cc:906
operations_research::sat::SatParameters::_Internal::set_has_random_branches_ratio
static void set_has_random_branches_ratio(HasBits *has_bits)
Definition: sat_parameters.pb.cc:885
operations_research::sat::SatParameters::_Internal::set_has_relative_gap_limit
static void set_has_relative_gap_limit(HasBits *has_bits)
Definition: sat_parameters.pb.cc:999
operations_research::sat::SatParameters::_Internal::set_has_mip_var_scaling
static void set_has_mip_var_scaling(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1296
operations_research::sat::SatParameters::_Internal::set_has_max_variable_activity_value
static void set_has_max_variable_activity_value(HasBits *has_bits)
Definition: sat_parameters.pb.cc:936
operations_research::sat::SatParameters::_Internal::set_has_binary_search_num_conflicts
static void set_has_binary_search_num_conflicts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1206
operations_research::sat::SatParameters::_Internal::set_has_cut_active_count_decay
static void set_has_cut_active_count_decay(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1164
operations_research::sat::SatParameters::_Internal::set_has_use_implied_bounds
static void set_has_use_implied_bounds(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1290
file_level_metadata_ortools_2fsat_2fsat_5fparameters_2eproto
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fsat_5fparameters_2eproto[1]
Definition: sat_parameters.pb.cc:43
operations_research::sat::SatParameters_MaxSatStratificationAlgorithm
SatParameters_MaxSatStratificationAlgorithm
Definition: sat_parameters.pb.h:269
TableStruct_ortools_2fsat_2fsat_5fparameters_2eproto::offsets
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: sat_parameters.pb.h:55
PROTOBUF_SECTION_VARIABLE
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fsat_5fparameters_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
operations_research::sat::SatParameters::_Internal::set_has_catch_sigint_signal
static void set_has_catch_sigint_signal(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1287
operations_research::sat::SatParameters::_Internal::set_has_max_sat_assumption_order
static void set_has_max_sat_assumption_order(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1092
operations_research::sat::SatParameters::_Internal::set_has_use_overload_checker_in_cumulative_constraint
static void set_has_use_overload_checker_in_cumulative_constraint(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1104
operations_research::sat::SatParametersDefaultTypeInternal::_instance
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< SatParameters > _instance
Definition: sat_parameters.pb.cc:21
operations_research::sat::SatParameters::_Internal::set_has_use_exact_lp_reason
static void set_has_use_exact_lp_reason(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1278
operations_research::sat::SatParameters::_Internal::set_has_fill_tightened_domains_in_response
static void set_has_fill_tightened_domains_in_response(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1215
operations_research::sat::SatParameters::_Internal::set_has_min_orthogonality_for_lp_constraints
static void set_has_min_orthogonality_for_lp_constraints(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1152
operations_research::sat::SatParameters::_Internal::set_has_max_time_in_seconds
static void set_has_max_time_in_seconds(HasBits *has_bits)
Definition: sat_parameters.pb.cc:984
descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_sccs
::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_sccs[1]
Definition: sat_parameters.pb.cc:569
operations_research::sat::SatParameters::_Internal::set_has_max_all_diff_cut_size
static void set_has_max_all_diff_cut_size(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1140
operations_research::sat::SatParameters_ClauseOrdering_IsValid
bool SatParameters_ClauseOrdering_IsValid(int value)
Definition: sat_parameters.pb.cc:713
operations_research::sat::SatParameters_VariableOrder_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_VariableOrder_descriptor()
Definition: sat_parameters.pb.cc:584
operations_research::sat::SatParameters::_Internal::set_has_merge_no_overlap_work_limit
static void set_has_merge_no_overlap_work_limit(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1071
operations_research::sat::SatParameters_RestartAlgorithm
SatParameters_RestartAlgorithm
Definition: sat_parameters.pb.h:219
operations_research::sat::SatParameters::_Internal::set_has_minimization_algorithm
static void set_has_minimization_algorithm(HasBits *has_bits)
Definition: sat_parameters.pb.cc:897
uint64
uint64_t uint64
Definition: integral_types.h:39
operations_research::sat::SatParametersDefaultTypeInternal
Definition: sat_parameters.pb.cc:19
CHK_
#define CHK_(x)
operations_research::sat::SatParameters::_Internal::set_has_enumerate_all_solutions
static void set_has_enumerate_all_solutions(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1212
operations_research::sat::SatParameters::_Internal::set_has_cover_optimization
static void set_has_cover_optimization(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1089
operations_research::sat::SatParameters::_Internal::set_has_minimize_reduction_during_pb_resolution
static void set_has_minimize_reduction_during_pb_resolution(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1014
operations_research::sat::SatParameters_BinaryMinizationAlgorithm_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_BinaryMinizationAlgorithm_descriptor()
Definition: sat_parameters.pb.cc:659
dynamic_init_dummy_ortools_2fsat_2fsat_5fparameters_2eproto
static bool dynamic_init_dummy_ortools_2fsat_2fsat_5fparameters_2eproto
Definition: sat_parameters.pb.cc:581
operations_research::sat::SatParameters::_Internal::set_has_initial_polarity
static void set_has_initial_polarity(HasBits *has_bits)
Definition: sat_parameters.pb.cc:873
operations_research::sat::SatParameters::_Internal::set_has_num_search_workers
static void set_has_num_search_workers(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1230
operations_research::sat::SatParameters::_Internal::set_has_optimize_with_core
static void set_has_optimize_with_core(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1203
operations_research::sat::SatParameters::_Internal::set_has_blocking_restart_multiplier
static void set_has_blocking_restart_multiplier(HasBits *has_bits)
Definition: sat_parameters.pb.cc:975
operations_research::sat::SatParameters::_Internal::set_has_lns_focus_on_decision_variables
static void set_has_lns_focus_on_decision_variables(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1251
descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_deps
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_deps[1]
Definition: sat_parameters.pb.cc:567
operations_research::sat::SatParameters::_Internal::set_has_max_integer_rounding_scaling
static void set_has_max_integer_rounding_scaling(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1146
operations_research::sat::SatParameters::_Internal::set_has_add_cg_cuts
static void set_has_add_cg_cuts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1128
operations_research::sat::SatParameters::_Internal::set_has_linearization_level
static void set_has_linearization_level(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1113
operations_research::sat::SatParameters::_Internal::set_has_random_polarity_ratio
static void set_has_random_polarity_ratio(HasBits *has_bits)
Definition: sat_parameters.pb.cc:882
operations_research::sat::SatParameters::_Internal::set_has_repair_hint
static void set_has_repair_hint(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1179
operations_research::sat::SatParameters_SearchBranching
SatParameters_SearchBranching
Definition: sat_parameters.pb.h:293
operations_research::sat::SatParameters::_Internal::set_has_mip_max_activity_exponent
static void set_has_mip_max_activity_exponent(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1305
file_level_enum_descriptors_ortools_2fsat_2fsat_5fparameters_2eproto
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fsat_2fsat_5fparameters_2eproto[11]
Definition: sat_parameters.pb.cc:44
operations_research::sat::SatParameters::_Internal::set_has_use_lns_only
static void set_has_use_lns_only(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1248
operations_research::sat::SatParameters_MaxSatAssumptionOrder
SatParameters_MaxSatAssumptionOrder
Definition: sat_parameters.pb.h:245
operations_research::sat::SatParameters::_Internal::set_has_restart_dl_average_ratio
static void set_has_restart_dl_average_ratio(HasBits *has_bits)
Definition: sat_parameters.pb.cc:963
operations_research::sat::SatParameters::_Internal::set_has_interleave_batch_size
static void set_has_interleave_batch_size(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1236
operations_research::sat::SatParameters::_Internal::set_has_share_level_zero_bounds
static void set_has_share_level_zero_bounds(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1245
operations_research::sat::SatParameters::_Internal::set_has_use_optimization_hints
static void set_has_use_optimization_hints(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1080
operations_research::sat::SatParameters::_Internal::set_has_cp_model_postsolve_with_full_solver
static void set_has_cp_model_postsolve_with_full_solver(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1044
operations_research::sat::SatParameters::_Internal::set_has_absolute_gap_limit
static void set_has_absolute_gap_limit(HasBits *has_bits)
Definition: sat_parameters.pb.cc:996
operations_research::sat::SatParameters::_Internal::set_has_also_bump_variables_in_conflict_reasons
static void set_has_also_bump_variables_in_conflict_reasons(HasBits *has_bits)
Definition: sat_parameters.pb.cc:894
operations_research::sat::SatParameters::_Internal::set_has_use_rins_lns
static void set_has_use_rins_lns(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1254
operations_research::sat::SatParameters::_Internal::set_has_use_blocking_restart
static void set_has_use_blocking_restart(HasBits *has_bits)
Definition: sat_parameters.pb.cc:969
operations_research::sat::SatParameters_ClauseOrdering_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_ClauseOrdering_descriptor()
Definition: sat_parameters.pb.cc:709
operations_research::sat::SatParameters::_Internal::set_has_use_erwa_heuristic
static void set_has_use_erwa_heuristic(HasBits *has_bits)
Definition: sat_parameters.pb.cc:888
operations_research::sat::SatParameters::_Internal::set_has_subsumption_during_conflict_analysis
static void set_has_subsumption_during_conflict_analysis(HasBits *has_bits)
Definition: sat_parameters.pb.cc:903
operations_research::sat::SatParameters::_Internal::set_has_add_knapsack_cuts
static void set_has_add_knapsack_cuts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1125
operations_research::sat::SatParameters::_Internal::set_has_fp_rounding
static void set_has_fp_rounding(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1260
operations_research::sat::SatParameters
operations_research::sat::SatParameters_MaxSatAssumptionOrder_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_MaxSatAssumptionOrder_descriptor()
Definition: sat_parameters.pb.cc:757
operations_research::sat::SatParameters::_Internal::set_has_clause_activity_decay
static void set_has_clause_activity_decay(HasBits *has_bits)
Definition: sat_parameters.pb.cc:948
operations_research::sat::SatParameters::_Internal::set_has_random_seed
static void set_has_random_seed(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1005
uint8
unsigned char uint8
Definition: integral_types.h:36
operations_research::sat::SatParameters::_Internal::set_has_max_number_of_conflicts
static void set_has_max_number_of_conflicts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:990
operations_research::sat::SatParameters_SearchBranching_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_SearchBranching_descriptor()
Definition: sat_parameters.pb.cc:803
operations_research::sat::SatParameters::_Internal::set_has_expand_automaton_constraints
static void set_has_expand_automaton_constraints(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1062
operations_research::sat::SatParameters::_Internal::set_has_max_deterministic_time
static void set_has_max_deterministic_time(HasBits *has_bits)
Definition: sat_parameters.pb.cc:987
operations_research::sat::SatParameters::_Internal::set_has_max_sat_reverse_assumption_order
static void set_has_max_sat_reverse_assumption_order(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1095
operations_research::sat::SatParameters::_Internal::set_has_cp_model_probing_level
static void set_has_cp_model_probing_level(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1050
operations_research::sat::SatParameters::_Internal::set_has_merge_at_most_one_work_limit
static void set_has_merge_at_most_one_work_limit(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1074
operations_research::sat::SatParameters::_Internal::set_has_strategy_change_increase_ratio
static void set_has_strategy_change_increase_ratio(HasBits *has_bits)
Definition: sat_parameters.pb.cc:981
operations_research::sat::SatParameters::_Internal::set_has_presolve_bve_clause_weight
static void set_has_presolve_bve_clause_weight(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1023
operations_research::sat::SatParameters::_Internal::set_has_clause_cleanup_protection
static void set_has_clause_cleanup_protection(HasBits *has_bits)
Definition: sat_parameters.pb.cc:912
operations_research::sat::SatParameters::_Internal::set_has_use_combined_no_overlap
static void set_has_use_combined_no_overlap(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1284
operations_research::sat::SatParameters::_Internal::set_has_max_num_cuts
static void set_has_max_num_cuts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1119
operations_research::sat::SatParameters::_Internal::set_has_add_clique_cuts
static void set_has_add_clique_cuts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1137
operations_research::sat::SatParameters::_Internal::set_has_exploit_all_lp_solution
static void set_has_exploit_all_lp_solution(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1185
operations_research::sat::SatParameters::_Internal::set_has_add_mir_cuts
static void set_has_add_mir_cuts(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1131
operations_research::sat::SatParameters_VariableOrder_IsValid
bool SatParameters_VariableOrder_IsValid(int value)
Definition: sat_parameters.pb.cc:588
operations_research::sat::SatParameters::_Internal::set_has_restart_running_window_size
static void set_has_restart_running_window_size(HasBits *has_bits)
Definition: sat_parameters.pb.cc:960
descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_once
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fsat_5fparameters_2eproto_once
Definition: sat_parameters.pb.cc:572
operations_research::sat::SatParameters::_Internal::set_has_polarity_rephase_increment
static void set_has_polarity_rephase_increment(HasBits *has_bits)
Definition: sat_parameters.pb.cc:879
operations_research::sat::SatParameters::_Internal::set_has_minimize_with_propagation_num_decisions
static void set_has_minimize_with_propagation_num_decisions(HasBits *has_bits)
Definition: sat_parameters.pb.cc:930
CreateMaybeMessage< ::operations_research::sat::SatParameters >
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::sat::SatParameters * Arena::CreateMaybeMessage< ::operations_research::sat::SatParameters >(Arena *arena)
Definition: sat_parameters.pb.cc:5514
operations_research::sat::SatParameters_ConflictMinimizationAlgorithm_IsValid
bool SatParameters_ConflictMinimizationAlgorithm_IsValid(int value)
Definition: sat_parameters.pb.cc:638
operations_research::sat::SatParameters::_Internal::set_has_use_phase_saving
static void set_has_use_phase_saving(HasBits *has_bits)
Definition: sat_parameters.pb.cc:876
operations_research::sat::SatParameters::_Internal::set_has_interleave_search
static void set_has_interleave_search(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1233
operations_research::sat::SatParameters_MaxSatAssumptionOrder_IsValid
bool SatParameters_MaxSatAssumptionOrder_IsValid(int value)
Definition: sat_parameters.pb.cc:761
operations_research::sat::SatParameters::_Internal::set_has_treat_binary_clauses_separately
static void set_has_treat_binary_clauses_separately(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1002
operations_research::sat::SatParameters::_Internal::set_has_clause_cleanup_ordering
static void set_has_clause_cleanup_ordering(HasBits *has_bits)
Definition: sat_parameters.pb.cc:918
operations_research::sat::SatParameters::_Internal::set_has_count_assumption_levels_in_lbd
static void set_has_count_assumption_levels_in_lbd(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1017
operations_research::sat::SatParameters_ClauseProtection_IsValid
bool SatParameters_ClauseProtection_IsValid(int value)
Definition: sat_parameters.pb.cc:690
operations_research::sat::SatParameters::_Internal::set_has_max_consecutive_inactive_count
static void set_has_max_consecutive_inactive_count(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1158
operations_research::sat::SatParameters::_Internal::set_has_expand_alldiff_constraints
static void set_has_expand_alldiff_constraints(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1068
operations_research::sat::SatParameters::_Internal::set_has_use_optional_variables
static void set_has_use_optional_variables(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1275
operations_research::sat::SatParameters::_Internal::set_has_diversify_lns_params
static void set_has_diversify_lns_params(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1266
operations_research::sat::SatParameters::_Internal::set_has_name
static void set_has_name(HasBits *has_bits)
Definition: sat_parameters.pb.cc:867
operations_research::sat::SatParameters::_Internal::set_has_restart_period
static void set_has_restart_period(HasBits *has_bits)
Definition: sat_parameters.pb.cc:957
operations_research::sat::SatParameters::_Internal::set_has_search_randomization_tolerance
static void set_has_search_randomization_tolerance(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1272
operations_research::sat::SatParameters::_Internal::set_has_cp_model_use_sat_presolve
static void set_has_cp_model_use_sat_presolve(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1053
operations_research::sat::SatParameters::_Internal::set_has_clause_cleanup_lbd_bound
static void set_has_clause_cleanup_lbd_bound(HasBits *has_bits)
Definition: sat_parameters.pb.cc:915
operations_research::sat::SatParameters::_Internal::set_has_max_cut_rounds_at_level_zero
static void set_has_max_cut_rounds_at_level_zero(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1155
operations_research::sat::SatParameters::_Internal::set_has_minimize_with_propagation_restart_period
static void set_has_minimize_with_propagation_restart_period(HasBits *has_bits)
Definition: sat_parameters.pb.cc:927
operations_research::sat::SatParameters::_Internal::set_has_mip_wanted_precision
static void set_has_mip_wanted_precision(HasBits *has_bits)
Definition: sat_parameters.pb.cc:1302
operations_research::sat::SatParameters_Polarity_descriptor
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SatParameters_Polarity_descriptor()
Definition: sat_parameters.pb.cc:607
operations_research::sat::SatParameters_Polarity_IsValid
bool SatParameters_Polarity_IsValid(int value)
Definition: sat_parameters.pb.cc:611
operations_research::sat::SatParameters::_Internal::set_has_clause_cleanup_target
static void set_has_clause_cleanup_target(HasBits *has_bits)
Definition: sat_parameters.pb.cc:909