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