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