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