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