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