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