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