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