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