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